JAVAEE2

本文详细介绍了SpringBoot的核心特性,包括其简化应用开发、整合技术栈以及一站式解决J2EE问题。深入探讨了SpringBoot的自动配置原理,解释了@Autowired的工作机制,以及如何通过@Primary和@Qualifier消除依赖注入的歧义。同时,概述了Spring的Bean生命周期,包括Bean的创建、初始化、依赖注入和销毁过程。此外,文章还涵盖了Spring的多种Bean注入方式,如set注入、构造方法注入和@Autowired注入,并讨论了Spring的核心——IoC和AOP。最后,文章提到了Spring Data JPA的常用注解和Linux常用命令。
摘要由CSDN通过智能技术生成

Springboot
简化Spring应用开发的一个框架;
整个Spring技术栈的一个大整合;
J2EE开发的一站式解决方案;
springboot参数配置默认加载顺序
在这里插入图片描述

Springboot自动配置原理
Spring Boot启动的时候会通过@EnableAutoConfiguration注解扫描所有jar包类路径下META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个JavaConfig形式的Spring容器配置类,它能通过以Properties结尾命名的类中取得在全局配置文件中配置的属性如:server.port,而XxxxProperties类是通过@ConfigurationProperties注解与全局配置文件中对应的属性进行绑定的。
@Autowired
首先它会根据类型找到对应的 Bean,如果对应类型的 Bean 不是唯一的,那么它会根据其属性名称和 Bean 的名称进行匹配。如果匹配得上,就会使用该 Bean :如果还无法匹配,就会抛出异常。
消除歧义性一一@Primary 和@Quelifier
@Primary 含义告诉IoC容器,当发现有多个同样类型的Bean时,优先使用该组件进行注入;有时候@Primary可以使用在多个类上,此时IoC容器还是无法区分采用哪个 Bean 的实例进行注入,它的配置项value需要一个字符串去定义,它与@Autowired组合使用,通过类型和名称一起找到Bean。
类似BeanFactory接口的下面这个方法:
T getBean(String name , Class requiredType) throws BeansException;
spring bean的生命周期:
1.资源定位,比如@ComponentScan所定义的扫描包
2.将Bean的定义保存到BeanDefiniton实例中
3.发布Bean定义,将它装载IOC容器中
4.Bean的初始化(实例化+依赖注入)
5.Bean生存期
6.Bean销毁
ComponentScan 中还有个配置项 lazyIinit ,只可以配 Boolean 值,且默认值为 false ,也就是默认不进行延迟初始化,在spring的IoC 容器初始化时就执行了实例化和依赖注入;设置为true时,我们取出Bean的时候才完成初始化和依赖注入。
读取配置文件
@Value("${database.name}");
@ConfigurationProperties(“database”) ;
@PropertySource(value={“classpath:jdbc.properties”},ignoreResourceNotFound=true)
条件装配bean
@Conditional
@Profile注解:多环境配置bean
@ImportResource:以引入对应的XML文件,用以加载 Bean
Spring的Bean的生命周期
流程节点都是针对单Bean 的,但是 BeanPostProcessor 是针对所有 Bean 的。
在这里插入图片描述
Spring的Bean容器都有哪些
SpringIOC容器是一个IOC Service Provider。提供了两种容器类型:BeanFactory和ApplicationContext。
BeanFactory是基础类型IOC容器。顾名思义,就是生产Bean的工厂。能够提供完整的IOC服务。没有特殊指定的话,其默认采用延迟初始化策略。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该对象进行初始化和依赖注入操作。
ApplicationContext是在BeanFactory的基础上边构建的,是相对比较高级的容器的实现,除了拥有BeanFactory的所有支持,ApplicationContext还提供了其他的高级特性。例如事件发布、国际化信息支持等。ApplicationContext所管理的对象,在该类型容器启动之后࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值