Spring - De XML para anotações

1 resposta
K
Estou migrando uma configuração (que funciona) XML para anotações. O problema está nesses beans:
<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
	<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="myDataSource" />
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="${jpa.show.sql}" />
				<property name="generateDdl" value="${jpa.generate.ddl}" />
				<property name="database" value="${jpa.database}" />
			</bean>
		</property>
		<property name="jpaProperties">
			<props><prop key="hibernate.dialect">${jpa.dialect}</prop></props>
		</property>
	</bean>
Mas, por anotações não consigo fazer:
@Bean
	public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
		lcemf = new LocalContainerEntityManagerFactoryBean();
		lcemf.setDataSource(dataSource());
		lcemf.setJpaVendorAdapter(jpaVendorAdapter());
		Properties properties = new Properties();
		properties.setProperty("hibernate.dialect", dialect);
		lcemf.setJpaProperties(properties);
		return lcemf;
	}
	
	//@Bean
	public JpaTransactionManager txManager() {
		jtm = new JpaTransactionManager();
		// Aqui está o erro....
		jtm.setEntityManagerFactory(entityManagerFactory());
		return jtm;
	}

Entendo o erro mas, não entendo pq pelo XML funciona...
E como faria?

Obrigado!

1 Resposta

romarcio

Mesmo com anotações, até onde sei, você ainda vai ter o arquivo XML de configuração do Spring. No caso esse XML que vc postou, não será anotado, ficará assim mesmo.

Você faz as anotações nos outros beans, que eram referentes as classes do Dao, do Service ou do COntroller.

Tem um pequeno tutorial aqui: http://singgihpraditya.wordpress.com/2010/02/13/spring-3-0-and-hibernate-tutorial-part-1/

Criado 20 de dezembro de 2010
Ultima resposta 20 de dez. de 2010
Respostas 1
Participantes 2