面试题-10SpringBoot

SpringBoot

SpringBoot原理(自动装配)

1.首先在启动类上,通过SpringApplication.run()方法 进行启动,他的原理就是,run()方法内部是通过refreshContext(context)进行刷新容器,然后去解释@SpringBootApplication
注解,将=bean注入容器里面,然后就会去解析我们写的那个springApplication类
springApplication他本身是个配置类因为在@SpringBootApplication注解内部有个注解是@SpringBootConfiguration配置类
他继承的是@Configuration 配置类表示被注解的类是配置类
2.@SpringBootApplication内部有个注解叫@ComponentScan 他的作用就是进行对本类和同目录下的所有包进行扫描
4.然后内部最终要的注解是@EnableAutoConfiguration 这个注解是自动装配的关键 他里面的注解中有一个注接叫@import,他
就是引入的意思,将AutoConfigurationImportSelector这个类加载,这个类被加载的时候,会调用一个方法,叫做selectImports
他有一个方法
叫getCandidateConfigurations,这个方法里面通过SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包,在spring-boot-autoconfigure-x.x.x.x.jar里就有一个spring.factories文件。他里面存储的是kay-value
形式的键值对
,其中一个key是EnableAutoConfiguration,所有的自动装配就会以这个key去找所有以AutoConfiguration结尾的类,然后去装配,自动配置类有很多,springboot还是没有那么傻的,它提倡的话是按需加载。
它会去掉重复的类 - 过滤掉我们配置了exclude注解的类,剩下的这写自动配置的类如果要起作用的话,是需要满足一定的条件的。这些条件的满足的话spring
boot是通过条件注解来实现的。在AutoConfiguration类里面有好多条件注解,他会根据你引入的jar包和容器里的bean,把相应的bean给自动注入到容器中,于是就实现了自动装配

spring注解有哪些?

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域 @Lazy(true) 表示延迟初始化 @Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上) @PreDestory用于指定销毁方法(用在方法上)
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常 @Autowired
默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下: @Autowired
@Qualifier(“personDaoBean”) 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 @PostConstruct 初始化注解
@PreDestroy 摧毁注解 默认 单例 启动就加载 @Async异步方法调用

什么是 Spring Boot?

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring
的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

Spring Boot 有哪些优点?

Spring Boot 主要有如下优点:
1.容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。
2.开箱即用,远离繁琐的配置。
3.提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。
4.没有代码生成,也不需要XML配置。
5.避免大量的 Maven 导入和各种版本冲突。

Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class
})。 @ComponentScan:Spring组件扫描。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyf_fly66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值