1. 程式人生 > >SSH全註解式開發

SSH全註解式開發

第一步:引入註解的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") 指定父包

案例:@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都可以不要了

關於事務的也可以刪掉,但不可以刪掉事務管理器

然後在下面新增

<!--元件掃描器 actionservicedao裡面物件的注入到依賴掃描器-->

<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的域屬性上放上@Autowiredspring通過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")//生成器

指定生成策略和生成器

至此Springstruts2hibernate的註解就配置完了,剩下來的就是要改某一些地方,

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的