随笔分类 - Spring学习笔记
摘要:【Spring AOP 如何定位连接点】 1.增强提供了连接点的方位信息:如织入到方法前面、后面等。 2.切点描述的是织入到哪些类的哪些方法上。 【切点】 Spring通过org.springframework.aop.Pointcut接口描述切点,Pointcut由ClassFilter和Meth
阅读全文
摘要:【异常抛出增强】 异常抛出异常最适合的应用场景:事务管理。 当参与事务的某个Dao发生异常时,事务管理器就必须回滚事务。 【异常抛出增强 例子】 【操作数据库的Dao类:PersonDao.java】 【抛出异常增强(事务管理器):TransactionManager.java】 【Spring配置
阅读全文
摘要:【增强的类型】 1.前置增强:org.springframework.aop.BeforeAdvice。 由于Spring只支持方法级别的增强,所以MethodBeforeAdvice是目前可用的前置增强,表示在目标方法执行前执行前置增强,BeforeAdvice是为了将来版本扩展需要而定义的。 2
阅读全文
摘要:【AOP的使用场景】 性能测试 访问控制 事务管理 日志记录 【AOP相关术语】 [ 连接点 Joinpoint ] 程序执行的某个特定位置。(假如Car类有drive()方法,那么在drive()方法之前,drive()方法之后,或者方法抛出异常之后,这些即为连接点)Spring仅仅支持方法的连接
阅读全文
摘要:【概述】 已知JDK动态代理中的Proxy.newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h)方法的第二个参数Class[] interfaces就是需要代理类实例实现的接口列表,即这里的代理类必须实
阅读全文
摘要:【概述】 JDK的动态代理主要涉及到java.lang.reflect包中的两个类:Proxy和InvocationHandler。 InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑,并通过反射机制调用目标类的代码,动态地将横切逻辑和业务逻辑编织在一起。 Proxy利用I
阅读全文
摘要:【工程截图】 【PersonDao.java】 【PersonDaoImpl.java】 【Transaction.java】 【personDaoInterceptor.java】 【testPerson.java】 【运行结果】 【拦截器中的invoke方法什么时候执行?】 答:当在客户端的代理
阅读全文
摘要:【工程截图】 【PersonDao.java】 【PersonDaoImpl.java】 【Transaction.java】 【PersonDaoProxy.java】 【testPerson.java】 【运行结果】
阅读全文
摘要:【工程截图】 【Person.java】 【Studnet.java】 【applicationContext.xml】 【testStudent.java】 【运行结果】
阅读全文
摘要:【工程截图】 【SuperPerson.java】 【Person.java】 【Studnet.java】 【applicationContext.xml】 【testPerson.java】 【运行结果】
阅读全文
摘要:【工程截图】 【PersonDao.java】 【PersonDaoImpl.java】 【PersonService.java】 【PersonServiceImpl.java】 【PersonAction.java】 【applicationContext.xml】 【testPerson.ja
阅读全文
摘要:【工程截图】 【Document.java】 【ExcelDocument.java】 【PdfDocument.java】 【WordDocument.java】 【DocumentManager.java】 【applicationContext.xml】 【testDocument.java】
阅读全文
摘要:【工程截图】 【Student.java】 【Person.java】 【applicationContext.xml】 【testPerson.java】 【运行结果】 【注意】 如果类上方只有@Component,那么其相当于<bean id="类名首字母小写,其他不变" class="....
阅读全文
摘要:【工程截图】 【Student.java】 【Person.java】 【applicationContext.xml】 【testPerson.java】 【运行结果】 【小结】 执行顺序: 1.启动Spring容器 2.Spring容器内部创建了两个对象:porson和student 3.当Sp
阅读全文
摘要:【工程截图】 【PersonDao.java】 【PersonDaoImpl.java】 【PersonService.java】 【PersonServiceImpl.java】 【PersonAction.java】 【applicationContext.xml】 【testPerson.ja
阅读全文
摘要:【工程截图】 【Document.java】 【ExcelDocument.java】 【PdfDocument.java】 【WordDocument.java】 【DocumentManager.java】 【applicationContext.xml】 【testDocument.java】
阅读全文
摘要:【工程截图】 【HelloWorld.java】 【applicationContext.xml】 【testHelloWorld.java】 【运行结果】 【小结】 从运行结果可以看出,先运行HelloWorld()构造方法,然后运行init()初始化方法,然后再运行调用的hello()的方法,最
阅读全文
摘要:【工程截图】 【Some.java】 【SomeBean.java】 【applicationContext.xml】 【TestAll.java】 【运行结果】
阅读全文
摘要:【简述】 如果在bean定义文件中已经有一个定义好的bean实例,则可以直接让某个属性来参考至这个实例,以实际的例子来做示范。 【工程截图】 【HelloWorld.java】 【applicationContext.xml】 【testHelloWorld.java】 【运行结果】 【小结】 要参
阅读全文
摘要:【工程截图】 【HelloWorld.java】 【applicationContext.xml】 【testHelloWorld.java】 【运行结果】
阅读全文