浏览 3555 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-12
最后修改:2009-03-13
首先让我们复习一下常用的标注
用于描述hibernate映射关系的标注,告别*.hbm.xml @Entity(name = “***") @Id
下面四个标注用来定义 bean, 自动根据 bean 的类名生成一个首字母小写的 bean @Component 标注普通的Spring Bean类 @Controller 标注控制器组件类 @Service 标注业务逻辑组件类 @Repository 标注一个DAO组件类
@Autowired 则是自动注入依赖的类, 它会在类路径中找成员对应的类/接口的实现类,
我们在BaseTest.java中使用过的 @ContextConfiguration
用来管理事务的 @Transactional
为保证标记可以运行,进一步修改ApplicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default-lazy-init="true"> <context:annotation-config /> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value> jdbc:mysql://localhost/sw?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8 </value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>mysql</value> </property> </bean> <!-- JPA EntityManagerFactoryBean for EntityManager--> <bean id="myEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> </bean> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="myEntityManagerFactory" /> <property name="dataSource" ref="dataSource" /> </bean> <bean id="albumDao" class="net.sw.album.dao.jpa.AlbumDaoJpa"> <property name="entityManagerFactory" ref="myEntityManagerFactory" /> </bean> <bean id="photoDao" class="net.sw.album.dao.jpa.PhotoDaoJpa"> <property name="entityManagerFactory" ref="myEntityManagerFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> <context:component-scan base-package="net.sw.album.service.impl" /> </beans>
albumDao、photoDao这两个bean的声明我没有找到使用标注把它们从xml中消除的方法,他们需要注入entityManagerFactory,这个属性是继承自他们的父类JpaDaoSupport。没办法控制,失败。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-12
很好!
可以在你的GenericDaoJPA中加个方法, 解决在配置文件中不能消除的问题:
@Autowired public void setEmf(EntityManagerFactory emf){ setEntityManagerFactory(emf); } |
|
返回顶楼 | |
发表时间:2009-03-12
zhoun:idea:
谢谢了,我怎么没有想到 |
|
返回顶楼 | |