学习新技术的理论

1.掌握用法

2.深入理解

3.不断实践

4.反复总结

5.不断深入理解与实践

二.spring两种注入方式:

1.设置注入

2.构造注入

3.2 spring的生命周期,和servlet其实类似的  定义,就是servlet在书写web.xml,初始化、使用(servlet有服务的方法service)、销毁  

分别有三种方式:两种xml的init-method、int-destroy(一种是全局的,可选,一种是局部的,必选),还有实现某种接口的,覆盖某些方法的

 3.3  Aware接口:可以对容器进行操作

3.4 自动装配的四种方式:

1. no:不做任何操作 2.byName  根据名称进行注入(如果没有找到抛异常) 3.byType 根据类型进行注入(如果有多个实现的类型,抛异常) 4.constructor:根据构造器:构造器参数根据类型来匹配

3.5 Resouce,该接口的实现跨越根据application来获取,使用时候有3种使用方式:classpath:、file:、url:;默认为appcalication的classpath;

4-1 Spring Bean装配之Bean的定义及作用域的注解实现

@compononent (子类 @service @reposetory @Controller)  然后介绍了<context: component-scan > 比<contenx:anotation-config>更广泛  还添加了scope注解 自定义bean(要包含无参构造器)

4-2 spring 的@autowired 三种用法 1.在属性上 2.在方法set上 3.在构造器上

4.3 @autowired可以使得类型的数组或map的字段或方法进行注入,而且针对数组可以有@order注解来排序

4.4 @autowired在多种类型的时候,不知道需要注入哪一个,可以使用@qualifier来缩小范围

4.5 介绍了@bean ,一般是在@configure下面的 方法使用,如果没有给定bean的名称,默认是方法名,除此之外,还可以使用@bean(init-method与destroy-method),具体实现是要在该方法返回的对象中实现

4.6 介绍了@importResource @value来替代xml文件的形式,然后注意点是value的变量需要与系统有所区别,例如username

4.7 @scope value默认为单例,还有模式,可以选择为target_class等

4.8 @autowired可以使用泛型 ,其次customAutowiredConfigure可以自定义@quelifier类似的注解

4.9 介绍了@resource基于bean名称的注解,还有@postConstruct、@preDestroy 类似于 init-method destroy-method, 其次还有@Inject注解,相当于@Autowried ,@Named 相当于@component

5.1 主要介绍了aop的方式有两种  预编译(aspect)与 动态代理(SpringAop、jbossAop)还有介绍了oop与aop是互补关系,aop相关的一些概念,切面、连接点等,advice有五种情形

5.2 介绍了<aop:config> <aop:aspect> <aop:aspect><aop:config>

5.3 介绍了pointcut有多种类型表达,within、target args等,然后<aop:config> <aop:pointcut  expression="目标方法表达式" id=""> <aop:pointcut><aop:config>

5.4 介绍了 advice的5种表达情况 1.before 2. after-running 3.after-throwing 4.after 5.环绕

5.5 单独介绍了<aop:around method=“”> <aop:around>  有个条件,必须第一个参数为ProcessDingJoinPoint ,然后在processDingJoinPoint.proceed()方法前后做操作,所以叫做环绕,除此之外还可以传参数的方式,来对参数进行前后处理

5.6介绍了@introductions 就是说,如果使用<aop:declare-parents>匹配到的,就可以转成所定义的接口实现接口的类型(我也不知道这个有什么使用场景)

5.7 介绍了advisor 用了<aop:around>来演示了循环调用,感觉没讲什么

--- 以上是基于aspect的做法,下面是SpringAop的api

6.1 讲了spring aop 的api 1.介绍pointcut 的实现类 NamedMatchMethodPointcut,有个mappedNames,类似表达式expression,然后讲了BeforeAdvice ThrowAdvice AfterRunningAdvice   MethodInterceptor

 6.2 讲了Spring apo的api配置,讲了ProxyFactoryBean的配置,ProxyFactoryBean是一个代理类,核心是getObject方法,最后讲了隐藏实现类的bean的做法

 6.3 讲解了 ProxyFactoryBean和自动代理的使用

--

7.1 描述了@aspectj的使用,并且说了@pointcut的使用,还有组合pointcut,最后讲了怎么写pointcut的expression是比较良好的

7.2 描述了@AspectJ怎么使用5种切面@advice的例子,1.@Before() 2.@AfterRunning 3.AfterThrow 4.After 5.Around   ,其中Around 的第一个参数还是为ProcessDingJoinPoint ,而且方法的第一个参数不是目标对象的返回值,processDingJoinPoint.proceed才是

7.3 对advice的组合使用和参数的传递

https://www.iteye.com/blog/wujiu-2222609

https://blog.csdn.net/iamlake/article/details/86357114

https://www.cnblogs.com/weiyinfu/p/8471407.html

shiro优雅整合:https://segmentfault.com/a/1190000014479154

shiro登录拦截

https://www.jianshu.com/p/1c40cba55e0a

https://www.pianshen.com/article/8515241483/

原文地址:https://www.cnblogs.com/imfjj/p/12747815.html