1.依赖注入
什么叫依赖注入:(DI),Spring的里面特性,也是比较重要
一个类里面依赖于另外一个类,然后spring把类的对象创建出来,然后注入到相应的类里面过程(理解)
1.1 依赖注入方式
(1)普通 set方法注入(掌握)
setName(String name)
<property name="name" value="xxxx">
(2) 构造器注入(了解)
类提供一个构造器
MyBean(Integer id,String name){
}
<constructor-arg index="0" value="1"></constructor-arg>
<constructor-arg index="1" value="xx"></constructor-arg>
<constructor-arg name="id" value="1"></constructor-arg>
<constructor-arg name="name" value="yyy"></constructor-arg>
<constructor-arg type="java.lang.Long" value="18"></constructor-arg>
<constructor-arg type="java.lang.Long" value="1">
其他的属性注入:
比如List /Set Arrays Map Properties
Array和Properties(掌握)
<property name="arrays">
<array>
<value>A</value>
<value>A</value>
<value>A</value>
</array>
</property>
<property name="prop1">
<props>
<prop key="key1" >sdfjlasjdflsaf</prop>
<prop key="key2" >sdfjlasj测试f</prop>
</props>
</property>
(3)XML里面类的注入方式(类和类之间注入)
XML–>
XML自动注入 -->ByName ByType
全注解方式注入–> <context:compont-scan basePackage="…"> –掌握
2 AOP
AOP:他也是Spring一个特性 ,面向切面的编程
什么叫面向切面编程(AOP):(理解)
它的产生并不是去取代面向对象,而是对面向对象进行扩展,可以按照一定的方式,把类切开(切到方法上面),可以往方法前后添加一些逻辑
什么叫面向对象编程:
用一个实实在在的个体去操作数据
我们在写程序,可以把什么内容都可以看成对象,使用对象思维操作编程
AOP使用场景:(掌握)
事务管理 日志管理 性能监控 拦截器
3.AOP实现
低耦合 /松耦合:类和类直接链接程度很低
高内聚:类里面的方法 就应该完成一个事情 (save/update)
底层是通过代理模式实现 – 代理模式 JDK/CGLIB动态代理
JDK:针对有接口情况下使用的代理模式 --优先推从–耦合度低
CGLIB:没有接口的情况下使用的代理模式 – 不要定义成final 修饰类
4.Spring的AOP的实现
xml版本aop – 练习掌握
anno版本aop–练习掌握
5.AOP代理模式
掌握概念
代理模式
静态代理:如果对多个接口或者多个方法,写很多额外的代理实现
动态代理
实现了解
动态代理 jdk(有接口) cglib(没有接口代理)