Spring-注解&代理模式&AOP
一.Spring的回顾
-
概述:Spring是一个轻量级的DI/IOC与AOP的容器框架
-
BeanFactory与ApplicationContext的区别?
都是接口,ApplicationContext是BeanFactory的子接口,拥有更多的功能与方法。ApplicationContext是在启动容器创建上下文环境的时候就创建Bean对象(预加载),而BeanFactory是在使用的时候才进行对象的创建(懒加载)
-
Spring需要的jar包
1.spring-core Spring的核心包
2.spring-context context包
3.spring-aop aop包
4.aspectjweaver 切面包
5.spring-test Spring的测试包(scope标签指定使用范围)
6.junit junit测试包,Spring的测试包是建立在junit之上的
Spring需要的插件与资源
(1).默认为1.5版本的编译,需要改为1.8
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
(2).读取java中的xml文件(默认不会去编译)
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/test/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
二.构造参数注入
constructor-arg:构造器的一个属性
- 根据下标进行引入(按照索引注入,索引开始为0)
在bean标签内,使用constructor-arg标签
属性:
Index 下标(从0开始)
Value 普通的值 - 根据名称进行引入(按照名称注入,名称必须一致)
在bean标签内,使用constructor-arg标签
属性:
Name 名称
Value 普通的值 - 根据类型进行引入(按照类型注入,必须一一对应,不能有重复的类型)
在bean标签内,使用constructor-arg标签
属性:
Type 类型
Value 普通的值
注意:不能出行重复的类型 - 自动进行引入
在bean标签内,使用constructor-arg标签
属性:
Value 普通的值
注意:顺序不允许修改 - 其他引入方式
外部bean:
1.先在外部定义好bean属性:
Id:otherBean
Class:地址
2.在引入时使用ref属性引进外部bean:
ref:otherBean
内部bean:
在进行引进时直接在内部写上bean属性,不需要加id
注意:外部bean可以重复使用
三.属性注入
- 普通属性注入
例:
准备属性
private Integer id;
配置