spring 框架 三个主要部分:1)bean容器;2)aop;3)spring mvc
一、bean容器的作用。
通常创建对象通过调用构造函数完成,spring容器通过配置(配置文件或配置类)来实现对象创建工作,实现ioc(DI)。
1. 配置bean容器 (对象及依赖关系)的方式有以下两种:
1)通过xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<context:component-scan base-package="com.vrv.paw..."/>
<!-- more bean definitions go here -->
</beans>
ApplicationContext ctx = new ClassPathXmlApplicationContext("application.xml")
2)配置类。
用java的类来替代配置文件,该类必须加上注解@Configuration.用类的方法来创建bean对象
@ComponentScan("cn.edu.jxnu.sse.domain")
@Import(DataSourceConfiguration.class)
public class SpringConfiguration {
//......
}
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfiguration.class);
2. 注解 。
如果待配置的Bean很多,上述方式配置太繁琐,可以利用注解简化配置。
1)在类上加@Component注解,使该类能被Bean容器实例化。
2)在配置类上加注解
@ComponentScan("cn.edu.jxnu.sse.domain")
或在配置文件上利用包扫描标签
<context:component-scan base-package="com.vrv.paw..."/>
3. 与比配置文件相比,配置类简化了容器配置,springboot多采用配置类的形式。
4. 配置类中bean定义
1)定义一个Bean,可以用定义一个方法,在方法中,创建该bean的对象,并设置相关属性值,然后返回该对象。
2)注解方式。
待实例化的每个类添加@Component注解,并在配置类上添加@ComponentScan("cn.edu.jxnu.sse.domain")
注解@Component可以表示该类可以通过容器实例化,
3)实例化对象的属性值(非关联属性)
可以通过注解@Value来设置,也可以由属性文件设置,并在类中(待实例化的类,非配置类)添加注解@ConfigurationProperties指定配置文件。
5.导入配置
当配置太复杂,可以分为多个配置类,然后在总配置类中用注解@Import导入其他配置(可以是配置类,也可是配置文件)。
在配置文件中,可以用<import resource="abc/abc.xml">标签来导入其他配置