文章目录
一. xml文件(经常改动的对象)
1.1.set 设值注入,自动调set方法,类中不能有同名有参构造函数,必须要有set方法,引用类型用ref
<bean id="mystudent" class="com.zknode.ba01.Student">
<!--设值注入,自动调set方法,类中不能有同名构造函数-->
<property name="name" value="张三"></property>
<property name="age" value="15 "></property>
<property name="school" ref="school"></property>
</bean>
1.2 引用类型(ref)的自动注入
byName
<!--byName属性名和bean的name一致,拿着属性名去找bean-->
<bean name="student" class="com.zknode.ba04.Student" autowire="byName">
<property name="name" value="张三"/>
<property name="age" value="18"/>
</bean>
输出Student{name='张三', age=18, school=school{add='beijing', name='北京大学'}}
byType
<!--byType三种同源关系去寻找,bean和class值一样;父子关系;接口和实现类,只能有一个符合条件的bean 负责会报错-->
<bean name="student2" class="com.zknode.ba04.Student" autowire="byType">
<property name="name" value="里斯"/>
<property name="age" value="88"/>
</bean>
输出 Student{name='里斯', age=88, school=school{add='beijing', name='北京大学'}}
1.3.构造注入,类中有有参构造函数
<bean id="mystudent" class="com.zknode.ba01.Student">
<constructor-arg name="age" value="12"></constructor-arg>
<constructor-arg name="name" value="zangsan"></constructor-arg>
<constructor-arg name="school" ref="school"></constructor-arg>
</bean>
除了使用name索引还可以使用id索引
二. 注解配置(大量使用,不经常改动的对象)。通过注解完成java对象创建,属性赋值。
使用注解的步骤:
-
加入maven的依赖 spring-context ,在你加入spring-context的同时, 间接加入spring-aop的依赖。
-
使用注解必须使用spring-aop依赖
-
在类中加入spring的注解(多个不同功能的注解)
@Component(value = "mystudent")
public class student {
...
- 自动注入
1. 1@Autowired 默认byType
默认@Autowired(required = true)引用报错中止,@Autowired(required = false)引用报错跳过
1.2 @Autowired byName
@Qualifier(“222”)
2.1 @Resource jdk的 默认byName 之后byType - 在spring的配置文件中,加入一个组件扫描器的标签,说明注解在你的项目中的位置
<context:component-scan base-package="com.zknode.ba01"/>
; , 空格可以并列引入
可以只导入父类
学习的注解:
1.@Component
(不是下面三种时候,省略value时,默认类名,小写开头)以下和Component功能差不多,不过以下分层
2.@Respotory
(dao)
3.@Service
(业务事务)
4.@Controller
(控制器)
5.@Value
(属性或者set方法上)
6.@Autowired
(自动注入,byType->byName )
7.@Resource
(自动注入 JDK byName->byType)
三. 其他
3.1 多文件的分配方式:
- 按功能模块,一个模块一个配置文件
- 按类的功能,数据库相关的配置一个文件配置文件, 做事务的功能一个配置文件, 做service功能的一个配置文件等
- spring xml总配置文件引入其他配置文件
<import resource="classpath:ba/spring-student.xml" >
使用通配符
<import resource = "classpath:ba/spring-*.xml">
3.2 ${}加载配置文件properties文件进行解耦合
- xml记得引入properties文件