第一步:引入註解的jar包 struts2-convention-plugin-2.3.16.3.jar
struts2的註解
Struts2:替換掉struts.xml文件
在Action類的上面放上:
替換掉struts.xml裏面的namespace: @Namespace("") 例如:namespace: @Namespace("/test")
在namespace下面放上@ParentPackage("struts-default") 指定父包
在程序要執行的方法上或者execute()方法上放上@Action(value="這裏面放的是之前struts.xml的action的name值,也是請求對應的頁面地址action裏面的值")
案例:@Action(value="query",results={@Result(name="success",type="Dispatcher",location="/welcome.jsp")})
如果返回值是success 則result裏面的name可以不寫,如果跳轉是Dispatcher ,可以不寫type,如果有參數要傳遞,可以加param
Spring的註解:
Action、service、dao三層 在spring.xml配置的bean都可以不要了
關於事務的也可以刪掉,但不可以刪掉事務管理器
然後在下面添加
<!--組件掃描器 action、service、dao裏面對象的注入到依賴掃描器-->
<context:component-scanbase-package="com.bjpowernode.*"></context:component-scan>
<!--事務註解驅動 -->
<tx:annotation-driventransaction-manager="transactionManager"/>
開始深入到dao、service、action類裏面去寫spring的註解
Dao層:(直接在實現類上寫,接口上不寫)
在class上放上@Repository(" ")
例如:@Repository("studentDao")
給class的域屬性添加@Aurowired自動注入 這裏一般都是注入sessionFactory
例如:@Autowired
private SessionFactorysessionFactory;
service層
Spring IOC部分
在class上放上@Service("")
例如:@Service("studentService")
在class的域屬性上放上注入註解標籤
@Resource
@Autowired
這兩種都可以,
Action層:
在action類的上面放上@Component表示它是spring的組件
在class的域屬性上放上@Autowired讓spring通過type來自動注入
注意:如果在注入域屬性的時候使用byName的方式
則寫法應該這樣寫
@Autowired
@Qualifier("studentService")//byName方式自動注入
private IStudentServiceservice;
這裏引號裏面放的是所要引入域屬性類的註解裏面的名字。
Spring事務的註解(加在service層)
在新增、修改、刪除的方法上放上 @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED)註解標籤。
當isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED時,表示都是默認值,括號裏面也可以不寫。即@Transactional()。
刪除的方法需要加一個readOnly=true,如下
@Transactional(readOnly=true)//加上它效率會更高
Hibernate的註解
替換的是映射文件 .hbm.xml,因此刪掉.hbm.xml文件
在實體類的上面放上@Entity表示此類是實體類
注意:如果table默認和類名一樣,則table標籤可以不寫
在id上放上
@Id
@GeneratedValue(generator="xxx")//使用hibernate內置的生成策略
@GenericGenerator(name="xxx",strategy="native")//生成器
指定生成策略和生成器
至此Spring、struts2、hibernate的註解就配置完了,剩下來的就是要改某一些地方,
在spring.xml中將 <property name="mappingDirectoryLocations" value="classpath:com/bjpowernode/beans"/>
改成 <property name="packagesToScan" value="com.bjpowernode.beans"/>
至此SSH的註解式就全部改完了。
附上案例地址:
鏈接:http://pan.baidu.com/s/1o8DgTuE 密碼:qnpj 這個demo使用 的jdk是1.7的 tomcat是6.0的