码迷,mamicode.com
首页 > 编程语言 > 详细

SSH整合 第四篇 Spring的IoC和AOP

时间:2016-08-22 19:42:20      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

这篇主要是在整合Hibernate后,测试IoC和AOP的应用。

 

1、工程目录(SRC)

技术分享

2、IoC

1)、一个Service测试类

技术分享
 1 /*
 2  * 加入spring容器
 3  */
 4 private ApplicationContext applicationContext =
 5         
 6         new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
 7 public static void main(String[] args) {
 8     new UserServiceTest().testGetUserAndRole();
 9 }
10 
11 public void test1() {
12     UserService userService= (UserService) applicationContext.getBean("userService");
13     User user = userService.getById("u1");
14     System.out.println(user.getId()+"---"+user.getUsername());
15 }
UserServiceTest

 

2)、UserServiceImpl

从User user = userService.getById("u1");调用UserServiceImpl。(下文都省略贴接口)。

再看看UserServiceImpl

技术分享

 

那么,spring容器应该是怎么样设置的呢?

技术分享

 

其他,同理。

 

3)、组件扫描

对于一个个bean地配置,可能有点麻烦,可以使用组件扫描

如,RoleServiceImpl

技术分享

xml文件中,则是

技术分享

3、AOP

这里是事务管理方面的应用。Spring中的设置如下。

技术分享
<!-- 事务管理 -->
 <bean id="transactionManager"
    class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<aop:config >
    <aop:advisor advice-ref="txAdvice"
        pointcut="execution(* com.xzw.ssh.service.impl.*.*(..))" />
</aop:config>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="get*" read-only="true" propagation="REQUIRED"/><!--之前是NOT_SUPPORT-->
        <tx:method name="find*" read-only="true" propagation="REQUIRED"/><!--之前是NOT_SUPPORT-->
        <tx:method name="save*" propagation="REQUIRED"/>
        <tx:method name="update*" propagation="REQUIRED"/>
        <tx:method name="remove*" propagation="REQUIRED"/>
        <tx:method name="add*" propagation="REQUIRED"/>
        <!--默认其他方法都是REQUIRED-->
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>
Springxml中的事务

 

注意

在使用AOP的时候,之前导入的包还是不够,会有出现“找不到类”的提示,关键字,org/aopalliance/intercept/MethodInterceptor和org/aspectj/weaver,对应加入aopalliance-1.0.jar和aspectjweaver.jar 

 

至此,spring和hibernate的整合基本完成。

SSH整合 第四篇 Spring的IoC和AOP

标签:

原文地址:http://www.cnblogs.com/jway1101/p/5796646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!