Spring Framework 属于spring全家桶中的一部分,springboot和springcloud都是基于spring framwork进行的
spring的核心部分是IOC控制反转和AOP面向切面编程
Ioc或者DI的核心思想在于提供一个更加简单的机制来规定组件之间的依赖关系,并且在他们声明周期中对依赖关系进行管理
Spring Framework的结构
由图可以看出目前的稳定版是:5.3.14
英文api地址:https://docs.spring.io/spring-framework/docs/current/javadoc-api/
下载地址:
https://repo.spring.io/ui/native/release/org/springframework/spring/
spring的作用域
1 单例(Singleton):(默认为单例)每一个Spring IoC容器都拥有唯一的一个实例对象
2 多例(prototype): 一个Bean定义可以创建任意多个实例对象
3 request
4 session
5 global session
6 application:限定一个Bean的作用域为 ServletContext 的生命周期
IOC
bean对象是指经过IoC容器实例化,组装和管理的对象
元数据格式:
1 XML:基于 XML 的配置元数据将这些bean 配置为
2 🔥基于注解的配置:Spring 2.5 的推出了基于注解的配置元数据支持。
3 🔥基于Java的配置:Spring3.0 开始,由 Spring JavaConfig 项目提供了很多功能成为核心Spring 框架的一部分。因此,你可以通过使用Java,而不是 XML 文件中定义外部 bean到你的应用程序类。要使用这些新功能,请参阅 @Configuration,@Bean,@Import 和@DependsOn 注解。
如何将一个类的创建交给spring来管理的方法
- 使用 @Bean 注解
- 使用 @Controller @Service @Repository @Component 注解标注该类,然后再使用 @ComponentScan 扫描包
- ✳️@Import 方法
@Import这种方式来验证一下
public class User {
private String id;
private String username;
}
配置类:
@Configuration
@Import(User.class)
public class ImportConfig {
}
测试一下,可以看到User对象是已经创建了
@Test
public void importTest() {
ApplicationContext ctx = new AnnotationConfigApplicationContext(ImportConfig.class);
String[] beanDefinitionNames = ctx.getBeanDefinitionNames();
for (String name : beanDefinitionNames) {
System.out.println(name);
}
}
Spring Bean 生命周期
1 实例化
实例化一个Bean,也就是我们常说的new
2 IOC依赖注入
按照Spring上下文对实例化的 Bean进行配置,也就是 IOC 注入
未完.......
书籍:
spring in action:
https://auditprogram.oss-cn-beijing.aliyuncs.com/blogresource/blogfile/pdffile/Spring%20in%20action.pdf
评论区