上一篇文章写了ssh搭建的过程,现在来简化几点。
一、实体类entity:
1、在entity包需要将数据库和实体类进行关联,在简化之前,我们需要在entity包里面加入一份xxx.hbm.xml映射文件,简化之后我们就可以把这份文件给删掉了。
在实体类加入以下注解
@Entity、@Table(name=”数据库的表名”)、@Id、@GeneratedValue(strategy = GenerationType.AUTO)生成主键策略
@Column表示字段,如果需要加描述可以使用该注解的对应属性
删除完映射文件,我们还需要在applicationContext.xml里面配置,如下:
<property name="packagesToScan">
<list>
<value>实体类所在的包</value>
</list>
</property>
二、注解:
1、使用注解前,先在spring的applicationContext.xml配置文件中加入以下代码
<!-- 自动扫描包,也会自动注入解释器,所以不需要 context:annotation-config-->
<context:component-scan base-package="根包名"></context:component-scan>
2、之前我们写的spring注入
<bean id="myIndexAction" class="ssh.action.IndexAction" scope="prototype">
<property name="is" ref="myIndexService"/>
</bean>
<bean id="myIndexService" class="ssh.service.IndexServiceImpl" scope="prototype">
<property name="id" ref="myIndexDao"/>
</bean>
<bean id="myIndexDao" class="ssh.dao.IndexDaoImpl" scope="prototype">
<property name="sessionFactory" ref="mySessionFactory"></property>
</bean>
现在都可以全部删掉了,用注解来代替它。
3、步骤:
(1)在Action类里面加入对应的定义的注解@Controller
(2)在Dao类里面加入对应的定义的注解@Repository
(3)在Service类里面加入对应的定义的注解@Service
还要记得加上@Scope(“prototype”)非单例注解。
4、接下来继续进一步简化,把Action、Service、Dao包中的set方法去掉,我们只需要定义声明变量就可以了,使用@Autowired、@Qualifier(“注入的名称”)或者用jdk的注解, @Resource(name=”注入的名称”)。
5、下面一张表使用注解的优势与弊端,推荐使用评价2分的。
目前暂时就这样,希望大家多多指正- 。-!