@SpringBootApplication
包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan注解
@SpringBootConfiguration
包含 @Configuration 注解
@EnableAutoConfiguration
开启自动配置功能,将所有符合条件的 @Configuration 配置类加载到容器
@Configuration
@Configuration用于定义配置类,用来代替 applicationContext.xml 配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
@Configuration标注在类上,等价于<Beans></Beans>。
@Bean标注在方法上(返回某个实例的方法),等价于<Bean></Bean>。默认的bean名称与标注的方法名相同。默认作用域为singleton作用域,可通过@Scope(“prototype”)设置为原型作用域。
配置类不可以是final类型、不可以是匿名类、嵌套的configuration必须是静态类。
@Configuration继承@Component,可以被@ComponentScan注解自动扫描。
//@Configuration和@Bean结合使用 @Configuration public class TestConfiguration { public TestConfiguration() { System.out.println("容器启动初始化..."); } @Bean(name="testBean", initMethod="start", destroyMethod="cleanUp") @Scope("prototype") public TestBean testBean() { return new TestBean(); } } //使用外部变量 @Configuration @PropertySource("classpath:/com/seasy/app.properties") public class AppConfig { @Inject Environment env; @Value("${bean.name}") private String beanName; @Bean public MyBean myBean() { return new MyBean(env.getProperty("bean.name")); } } //在@configuration中引入spring的xml配置文件 @Configuration @ImportResource("classpath:applicationContext.xml") public class WebConfig { } //在@configuration中引入其它注解配置 @Configuration @Import(TestConfiguration.class) public class WebConfig { }
@ComponentScan
该注解默认会自动扫描该类所在包下所有的配置类,相当于之前的 <context:component-scan>。
useDefaultFilters属性的默认值为true,也就是说spring默认会自动发现被 @Component、@Controller、@Service和@Repository 标注的类,并注册进容器中。
@ConfigurationProperties
读取配置文件的信息,并自动封装成实体类。
默认是从application.properties属性文件中获取配置信息的,如果要从其他属性文件中获取,可以结合 @PropertySource 注解使用。
有以下几种使用方式:
和 @Component 注解一起使用:
@Component @PropertySource("classpath:demo1.properties") @ConfigurationProperties(prefix="seasy.connection") public class ConfigBean{ private String serverIp; private String serverPort; private boolean enabled; private AddressBean address; private List<AddressBean> addressList; private Map<String, AddressBean> addressMap; //getter and setter }
demo1.properties属性文件:
seasy.connection.serverIp=192.168.1.1 seasy.connection.serverPort=4001 seasy.connection.enabled=true #convert to bean seasy.connection.address.province=GuangDong seasy.connection.address.city=GuangZhou #convert to list seasy.connection.addressList[0].province=GuangDong seasy.connection.addressList[0].city=GuangZhou seasy.connection.addressList[1].province=ShangHai seasy.connection.addressList[1].city=ShangHai2 seasy.connection.addressList[2].province=Beijing seasy.connection.addressList[2].city=Beijing2 #convert to map seasy.connection.addressMap.ADDR1.province=GuangDong seasy.connection.addressMap.ADDR1.city=GuangZhou seasy.connection.addressMap.ADDR2.province=ShangHai seasy.connection.addressMap.ADDR2.city=ShangHai2 seasy.connection.addressMap.ADDR3.province=Beijing seasy.connection.addressMap.ADDR3.city=Beijing2
和 @bean 注解一起使用:此方式不能从自定义属性文件中加载
@Bean @ConfigurationProperties(prefix="seasy.connection") public ConfigBean getConfigBean(){ return new ConfigBean(); }
通过 @EnableConfigurationProperties 注解使 @ConfigurationProperties 标注的类生效:
@ConfigurationProperties(prefix="seasy.connection") public class ConfigBean{ } @Configuration @EnableConfigurationProperties(ConfigBean.class) public class MailConfiguration { @Autowired private ConfigBean configBean; }
@EnableConfigurationProperties
一般要配合 @ConfigurationProperties 注解使用,用来开启对 @ConfigurationProperties 注解配置Bean的支持。
@Import
用于导入特定的类来动态创建bean实例,支持以下几种方式:
1、导入普通Java类,将其作为Spring bean注入到Spring容器中
@Import({SquareBean.class, CircularBean.class})
2、导入 @Configuration注解 标注的配置类
@Import({SeasyConfiguration.class})
3、导入实现ImportSelector接口的实现类
public class MyImportSelector implements ImportSelector{
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{"com.zhang.bean.Triangle"};
}
}
@Import({MyImportSelector.class})
4、导入实现ImportBeanDefinitionRegistrar接口的实现类
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar{
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Rectangle.class);
registry.registerBeanDefinition("rectangle", rootBeanDefinition);
}
}
@Import({MyImportBeanDefinitionRegistrar.class})
相关推荐
springboot常用注解.markdown
"SpringBoot常用注解" SpringBoot框架中,注解(Annotation)是一种Metadata形式的描述,它可以在编译器或 runtime 时提供信息,用于配置 SpringBoot 应用程序。在本文中,我们将详细介绍 SpringBoot 中的常用注解...
### SpringBoot常用注解详解 #### 一、Spring Web MVC 注解 ##### 1. `@RequestMapping` `@RequestMapping` 是 Spring MVC 中的核心注解之一,用于映射 HTTP 请求到处理该请求的具体方法上。该注解可以作用于类...
【Spring Boot常用注解说明】 在Spring Boot框架中,注解起到了至关重要的作用,它们简化了配置,使得开发过程更加高效。以下是一些常见的Spring Boot注解及其详细解释: 1. **@SpringBootApplication** 这是...
Spring Boot 常用注解汇总说明 一、启动注解 @SpringBootApplication 在Spring Boot应用中,`@SpringBootApplication`是最核心的注解,它实际上是一个复合注解,包含了`@SpringBootConfiguration`、`@...
### Spring Boot常用注解详解 #### 一、启动注解 **1.1 @SpringBootApplication** - **定义**: `@SpringBootApplication`是一个复合注解,它整合了`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@...
计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...
SpringBoot 中常用注解及各种注解作用 SpringBoot 框架中,注解扮演着非常重要的角色,它们可以帮助开发者快速构建应用程序,提高开发效率。下面将对 SpringBoot 中常用注解进行详细的介绍,并解释每个注解的作用。...
解决创建的项目没有src/main/resources文件夹4.SpringBoot常用注解上记文章标号1,2,3可以先看,而【SpringBoot常用注解】东西有点多,建议遇到不理解的注解可以点开【SpringBoot常用注解】进行Ctrl + f进行检索。...
,包括springboot的注解分析、路径分析、取得内置对象、项目打包、配置环境属性、读取资源文件、Bean配置、模板渲染、 基于yml的多profile配置、基于properties的多profile、添加数据验证、配置错误页、全局异常处理...
spring注解开发笔记总结,方便网友使用
springboot之常用注解的演示项目包
微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 ...
这里包含了springboot的创建,参数,配置,数据库集成,部署,拦截器等开发中常用的信息。如有错漏更正欢迎来信307793969@qq.com
推荐新手java工程师+SpringBoot框架开发中常用注解,SpringBoot入门级必读 @EnableScheduling @EnableTransactionManagement @Configuration @bean @JmsListener @Deprecated @XStreamAlias @EnableAync ...
FeignClient注解的常用属性包括: * name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。 * url:用于调试,可以手动指定@FeignClient调用的地址。 * decode404:当...
Spring常用注解(收藏大全) Spring 框架中提供了许多注解,以便于开发者快速、方便地开发应用程序。这些注解可以分为多个类别,包括 bean 声明、依赖注入、配置类相关、切面相关、属性支持、值注入、环境切换等。 ...
使用注解的优势有采用纯java代码,不在需要配置繁杂的xml文件,在配置中也可享受面向对象带来的好处.类型安全对重构可以提供良好的支持.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能
本文将详细介绍Spring Boot中几个常用且重要的注解。 #### 二、@RestController `@RestController` 是Spring 4.0之后引入的新注解,它是`@Controller`和`@ResponseBody`的组合。这个注解用于标记控制器类,表明该...
#### 一、Spring Boot 常用注解 ##### 1. `@SpringBootApplication` - **定义**:`@SpringBootApplication` 是 Spring Boot 的核心注解,它集成了三个注解的功能:`@Configuration`、`@EnableAutoConfiguration` ...