SSH 框架搭建流程,在之前的随笔有详细的介绍。
|----------------------------- 本文将详细描述如何去简化我们的代码,我想:每一个程序员都一颗偷懒的心! -----------------------------|
对于SSH框架中部分的操作简化我分为两大类:
一:操作
1. 在我们 SSH 的 struts.xml 里
<!-- 这里使用了通配符 --> <action name="Action类_*" class="注入的实例" method="{1}">
</action>
例如:我们访问的是 Action_test.action ,它就会自动调用 Action 类的 test 方法
2.在我们的 action 标签里
<result type="redirectAction">
</result>
Action 处理完成后重定向到指定的 Action
二:注解
在我们使用注解前先在 spring 的 applicationContext.xml 配置文件加入以下代码
<!-- 自动扫描包,也会自动注入解析器 --> <context:component-scan base-package="根包名"></context:component-scan>
1.简化 Spring 的注入,把以前的 applicationContext.xml 配置文件
<bean>、<property>标签通通去除掉
首先在我们的 Action、Service、Dao 包里只需要加相对应的定义的注解@Controller、@Service、@Repository
注意:
a.例如@Controller(name="定义注入的实例"),不指定注入的实例,注解将会自动找到对应的Action的名称并会将首字母改成小写,将作为定义的名称
b.不要忘记了在后面加上 Scope("prototype")非单例注解
2.定义完成后,我们进一步的简化,把Action、Service、Dao包中的set方法去掉,我们只需要定义声明变量就可以了,使用 @Autowired、@Qualifier("注入实例的名称")
注意:@Autowired 的单独使用,Spring 会把返回值的类型跟你需要注入的实例做对比是否一致再注入对应的实例,万一返回值类型相同的有多个,注入的实例定会出错
3. 附加jdk的注解, @Resource(name="注入的名称") 也可以代替 @Autowired、@Qualifier(name="注入的名称")
4. SSH 注解优势与弊端
5. 我们将使用注解,代替以前的实体类的 .hbm.xml 映像文件
在我们的实体类加入以下注解
@Entity、@Table(name="数据库的表名")、@Id、
@GeneratedValue(strategy = GenerationType.AUTO)生成主键策略
@Column表示字段,如果需要加描述可以使用该注解的对应属性
删除完映射文件,我们还需要在applicationContext.xml里面配置,如下:
<property name="packagesToScan"> <list> <value>实体类所在的包</value> </list> </property>