@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常用注解说明springboot常用注解说明springboot常用注解说明springboot常用注解说明springboot常用注解说明springboot常用注解说明springboot常用注解说明springboot常用注解说明springboot常用注解说明...
springboot常用注解.markdown
40 个 SpringBoot 常用注解:让生产力爆表!
"SpringBoot常用注解" SpringBoot框架中,注解(Annotation)是一种Metadata形式的描述,它可以在编译器或 runtime 时提供信息,用于配置 SpringBoot 应用程序。在本文中,我们将详细介绍 SpringBoot 中的常用注解...
Spring Boot是一个开源框架,旨在简化Spring应用程序的创建和部署。它通过提供自动配置和约定优于配置的...通过了解这些常用注解的特性和使用方法,读者可以更有效地利用Spring Boot框架的功能,提高开发效率和质量。
一、启动注解 @SpringBootApplication 二、Controller 相关注解 三、取请求参数值 四、注入bean相关 五、导入配置文件 六、事务注解 @Transactional
SpringBoot 中常用注解及各种注解作用 SpringBoot 框架中,注解扮演着非常重要的角色,它们可以帮助开发者快速构建应用程序,提高开发效率。下面将对 SpringBoot 中常用注解进行详细的介绍,并解释每个注解的作用。...
,包括springboot的注解分析、路径分析、取得内置对象、项目打包、配置环境属性、读取资源文件、Bean配置、模板渲染、 基于yml的多profile配置、基于properties的多profile、添加数据验证、配置错误页、全局异常处理...
spring注解开发笔记总结,方便网友使用
微服务基础,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注解文档是理解并有效利用这些注解的关键资源,它涵盖了各种常用的注解以及如何在实际项目中应用它们。 1. `@SpringBootApplication`: 这是Spring Boot的核心注解,结合了`@SpringBootConfiguration`、`...
Springboot配置类使用和常用注解.md
**Spring Boot 常用注解详解** Spring Boot以其简洁的配置、快速的启动和集成众多优秀框架的能力,成为Java开发领域中的热门选择。在Spring Boot应用中,注解起着至关重要的作用,它们简化了配置,使得代码更加简洁...
**SpringBoot常用开发介绍** SpringBoot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如Redis、MongoDB、JPA、RabbitMQ、Quartz等,...
4. **Scheduled任务**: SpringBoot的`@EnableScheduling`注解可以开启定时任务功能。然后,我们可以定义带有`@Scheduled`注解的方法,指定执行周期,实现定时任务。例如,可以定时清理数据库、发送邮件等。使用`@...