Springboot中enable注解

  这句话可以作为理解springboot自动注入的原理的钥匙:ImportSelector接口的selectImports返回的数组(类的全类名)都会被纳入到spring容器中.

  至于spring怎么根据类名创建bean的就不用管了。博文地址https://www.jianshu.com/p/464d04c36fb1

public class AutoConfigurationImportSelector
		implements DeferredImportSelector, BeanClassLoaderAware, ResourceLoaderAware,
		BeanFactoryAware, EnvironmentAware, Ordered  //看这个类实现的接口多复杂
@Override
	public String[] selectImports(AnnotationMetadata annotationMetadata) {
		if (!isEnabled(annotationMetadata)) {
			return NO_IMPORTS;
		}
		AutoConfigurationMetadata autoConfigurationMetadata = AutoConfigurationMetadataLoader
				.loadMetadata(this.beanClassLoader);
		AutoConfigurationEntry autoConfigurationEntry = getAutoConfigurationEntry(
				autoConfigurationMetadata, annotationMetadata);
		return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());
	}

  这个方法就是导入了自动配置的文件的字符串。

原文地址:https://www.cnblogs.com/Robin008/p/10249744.html

时间: 2024-08-30 08:52:24

Springboot中enable注解的相关文章

SpringBoot的@Enable*注解的使用介绍

@EnableAsync或@EnableConfigurationProperties背后的运行原理,是使用了@Import注解. @Import({User.class,Role.class,MyConfiguration.class}),@Import里面可以存放数组类型的. @Import用来导入一个或多个类(bean被spring容器托管).或者配置类(配置类里面的Bean都会被spring容器托管). @Enable*其实就是使用了@Import,@Import其实就是导入了配置类.

SpringBoot中常用注解@Controller/@RestController/@RequestMapping的区别

@Controller 处理http请求 @Controller //@ResponseBody public class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } } 如果直接使用@Controller这个注解,当运行该SpringBoot项目后,在浏览器中输入:loc

springboot中常用注解总结

1.@RestController(组合注解):标注在类上,等价于@Controller和@Responsebody @Controller:将该类标记为Controller层的类,并且注入到Spring容器中 @Responsebody:注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或是 XML数据. 2.@SpringBootApplication:该注解标注标注在某个类上,代表这个类是

SpringBoot中DataSourceAutoConfiguration注解

最近在学习springBoot时,其中有很大的一个核心的只是点:自动配置. 通过 DataSourceAutoConfiguration 学习 自动配置是如何实现的. 自动配置中比较重要的一个点就是 条件化配置? 1.条件化配置 JdbcTemplateCondition 的定义 package com.qxy.readinglist.conditions; import org.springframework.context.annotation.Condition; import org.s

SpringBoot中@EnableAutoConfiguration注解用法收集

参考: http://blog.csdn.net/xiaoyu411502/article/details/52770723 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-replacing-auto-configuration

Springboot 中AOP的使用

面向切面编程(Aspect Oriented Programming) 是软件编程思想发展到一定阶段的产物,是面向对象编程的有益补充.AOP一般适用于具有横切逻辑的场合,如访问控制.事务管理.性能检测等. 日志.异常处理.事务控制等都是一个健壮的业务系统所必须的.但是为了保证系统健壮可用,就要再众多业务方法中反复编写类似的代码,使得原本就很复杂的业务处理代码变得更加复杂.业务功能的开发者还要考两次这些额外的代码是否处理正确,是否有遗漏的地方,如果需要修改日志信息的格式或者安全验证的规则,或者再增

springboot中的常用注解

springboot中的常用注解个人觉得springboor中常用的注解主要可以分为三种:放入容器型注解.从容器中取出型注解和功能型注解.其中的放入容器型和从容器中取出型就是我们平时所说的控制反转和依赖注入的概念(个人版本- - - 可以看一看,别太当真 0.0) 放入容器型注解简介:个人觉得就是申明一个实例对象,然后将这个对象交给spring管理. 1.@Component:放在类上,把普通类实例化到spring容器中.可以说很多注解都是基于这个注解的. 2.@Bean: 放在方法上,用@Be

Springboot中使用自定义参数注解获取 token 中用户数据

使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类解析token中的用户信息 把解析结果存入到成员变量中 controller中通过TokenUtil工具类提供的静态方法获取用户信息 下面是过程示例代码 /*--------1.拦截器中获取---------*/ String token =request.getHeader("token"

springboot中删除@SessionAttributes注解的属性

在SpringBoot中做登录登出的操作时,将用户通过@SessionAttributes注解存入到session中,很是方便.结果发现登出时,使用session.removeAttribute("user")没有用,不能登出. 发现问题之后,开始面向Baidu的编程. 原来我的登录时候存入的属性到session的方式: @SessionAttributes(value = {"userInfo"}) ... model.addAttribute("use