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登录拦截