你的位置:首页 > ASP.net教程

[ASP.net教程]SSH框架使用注解简化代码


注释的优势:

    1.最简单直接的优势就是减少了配置文件的代码量。

    2.注释和Java代码位于一个文件中,而内聚性。而采用独立的

 SSH 注解组合使用: 

    

这里我推荐用最后一种。

 

我们在使用注解前先要在applicationContext.

<!-- 自动扫描包,也会自动注入解释器,所以不需要 context:annotation-config -->  <context:component-scan base-package="news"></context:component-scan>

 

去掉 context:annotation-config 和用来注入的bean和property

<!-- 原理:自动注入processor解析器,用来解析注解 -->  <!-- <context:annotation-config/> --><bean id="myNewsAction" class="news.action.NewsAction" scope="prototype">  <property name="ns" ref="myNewsService"></property></bean><bean id="myNewsService" class="news.service.NewsServiceImpl" scope="prototype">  <property name="nd" ref="myNewsDao"></property></bean><bean id="myNewsDao" class="news.dao.NewsDaoImpl" scope="prototype">  <property name="sf" ref="mySessionFactory" /></bean>

 

然后我们在 Action  Service  Dao 类加入对应的注解@Controller@Service@Repository

导入对应包 import org.springframework.stereotype.Controller(Repository  Service);

虽然这些只是规范,不对应写也没关系,不过养成良好的代码习惯比较好,建议大家都要这样写。

 

这里我就不一一举例了,我们只拿Action举例:

先找到Action类在前面加注解:

@Controller("注入实例的名字")如果不写默认自动找到对应action类名称首字母改为小写

当我们不写的时候注意struts.

<action name="NewsAction_*" method="{1}">

@Scope("prototype")非单例 注意:这个如果不写单独运行并不会报错,多人访问就会报错。

 

 然后我用注释进一步简化 Action  Service  Dao 类,去掉里面set方法。

我们只需要在声明变量的前面加注解@Autowired和@Qualifier("bean的名称")

需要导入这两个包:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

@Autowired可以单独使用,默认情况下使用 @Autowired 注解会自动注入,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出BeanCreationException 异常,并指出必须至少拥有一个匹配的。所以我们通过 @Qualifier 注释指定注入 Bean 的名称,这样就可以解决异常。