这篇主要是在整合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的整合基本完成。

SSH整合 第四篇 Spring的IoC和AOP的更多相关文章

  1. SSH整合 第三篇 Spring的加入

    1.思路和想法. 目前理解到的,觉得是的,可能的,应该这样的……………… Spring的两大核心是IoC和AOP Ioc:帮助实例化对象,加载到容器中,在注入到需要用到的地方.这样就可以减少在不同的方 ...

  2. Spring框架IOC和AOP介绍

    说明:本文部分内容参考其他优秀博客后结合自己实战例子改编如下 Spring框架是个轻量级的Java EE框架.所谓轻量级,是指不依赖于容器就能运行的.Struts.Hibernate也是轻量级的. 轻 ...

  3. ssh整合思想初步 structs2 Spring Hibernate三大框架各自要点

    Web层用Structs2的action Service层用Spring的IoC和aop以及JdbcTemplate或者Transaction事务(创建对象及维护对象间的关系) Dao层用Hibern ...

  4. 展开说说,Spring Bean IOC、AOP 循环依赖

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 延迟满足能给你带来什么? 大学有四年时间,但几乎所有人都是临近毕业才发现找一份好工作 ...

  5. Spring 的IOC和AOP总结

    Spring 的IOC和AOP IOC 1.IOC 许多应用都是通过彼此间的相互合作来实现业务逻辑的,如类A要调用类B的方法,以前我们都是在类A中,通过自身new一个类B,然后在调用类B的方法,现在我 ...

  6. Spring 的IOC 和Aop

    Spring 的IOC 和Aop

  7. # Spring 练习ioc 、aop

    Spring 练习 通过学习spring的基础知识,了解了Spring为了降低Java开发的复杂性,采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: ...

  8. Spring的IOC和AOP之深剖

    今天,既然讲到了Spring 的IOC和AOP,我们就必须要知道 Spring主要是两件事: 1.开发Bean:2.配置Bean.对于Spring框架来说,它要做的,就是根据配置文件来创建bean实例 ...

  9. spring的IOC和AOP

     spring的IOC和AOP 1.解释spring的ioc? 几种注入依赖的方式?spring的优点? IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是 ...

随机推荐

  1. c++实现贪食蛇

    今天老师布置了作业 让我们观察c++实现贪食蛇的代码 #include<windows.h> #include<time.h> #include<stdlib.h> ...

  2. 一行转多行 及多行转一行的 hive语句

      注意 :|,: 是特殊符号,要用 "\\|", "\\;"来表示.   一行转多行 usertags 里面有很多项,每项之间以逗号分隔   create t ...

  3. express + mongodb 搭建一个简易网站 (五)

    前面已经将导航中的“所有宝贝”页面连上了mongodb,现在我们就把其他的页面脸上数据库,将整个网站全部实现. 打开routes文件,找到jacket.js,将里面的代码修改如下: var expre ...

  4. Maven命令行使用 mvn clean package

    先把命令行切换到Maven项目的根目录,比如:/d/xxxwork/java/maven-test,然后执行命令:  mvn clean package 执行结果如下: [INFO] Scanning ...

  5. Appium学习路-安装篇

    比较好的文章:http://www.15yan.com/story/4GbuTwXQKDU/ 官网资料:http://appium.io/slate/cn/v1.2.0/?python#appium ...

  6. TensorFlow—张量运算仿真神经网络的运行

    import tensorflow as tf import numpy as np ts_norm=tf.random_normal([]) with tf.Session() as sess: n ...

  7. 使用HttpModule实现网址重写

    1.  修改配置文件: <httpModules> <</span>add name="html" type="HttpModule&quo ...

  8. asp.net回发页面被刷新后悔重新执行回发事件的解决方法

    做项目,进行数据修改操作后,重新加载数据,本来是没问题的.但是在这个时候刷新下页面,发现修改操作又重新执行了一次,并弹出“修改成功”的提示框. 百度了下,找到以下解决方法,解决了问题: Page.Cl ...

  9. django做form表单的数据验证

    我们之前写的代码都没有对前端input框输入的数据做验证,我们今天来看下,如果做form表单的数据的验证 在views文件做验证 首先用文字描述一下流程 1.在views文件中导入forms模块 2. ...

  10. JFinal架构简介

    JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ruby.py ...