• SSH整合 第四篇 Spring的IoC和AOP


    这篇主要是在整合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中的设置如下。

     1 <!-- 事务管理 -->
     2  <bean id="transactionManager"
     3     class="org.springframework.orm.hibernate4.HibernateTransactionManager">
     4     <property name="sessionFactory" ref="sessionFactory" />
     5 </bean>
     6 
     7 <!-- AOP 切点-->
     8 <aop:config >
     9     <aop:advisor advice-ref="txAdvice"
    10         pointcut="execution(* com.xzw.ssh.service.impl.*.*(..))" />
    11 </aop:config>
    12 
    13 <!--事务的传播特性-->
    14 <tx:advice id="txAdvice" transaction-manager="transactionManager">
    15     <tx:attributes>
    16         <tx:method name="get*" read-only="true" propagation="REQUIRED"/>
    17         <tx:method name="find*" read-only="true" propagation="REQUIRED"/>
    18         <tx:method name="save*" propagation="REQUIRED"/>
    19         <tx:method name="update*" propagation="REQUIRED"/>
    20         <tx:method name="remove*" propagation="REQUIRED"/>
    21         <tx:method name="add*" propagation="REQUIRED"/>
    22         <!--默认其他方法都是REQUIRED-->
    23         <tx:method name="*"/>
    24     </tx:attributes>
    25 </tx:advice>
    事务

    注意

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

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

  • 相关阅读:
    (感受)新人生的三种境界
    (学)如何在打印时对横向页面重复左端标题
    (原)解决.NET 32位程序运行在64位操作系统下的兼容性问题
    (原)儿子上小学了
    OSG学习过程中的笔记
    从c++角度学习JAVA、Android的总结
    Android Studio利用cmakelists.txt编译OSG的方法总结
    android studio 利用gradle和cmakelist生成c++静态库.a的方法总结
    Android Studio使用c++静态库的方法总结(hello-libs为例)
    Android.mk、CMake、Gradle简介 NDK和JNI的关系
  • 原文地址:https://www.cnblogs.com/jway1101/p/5796646.html
Copyright © 2020-2023  润新知