`
raymond.chen
  • 浏览: 1426577 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Springboot常用注解

 
阅读更多

Spring相关注解类

Conditional相关注解

 

@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常用注解说明...

    springboot常用注解.markdown

    springboot常用注解.markdown

    40 个 SpringBoot 常用注解:让生产力爆表!

    40 个 SpringBoot 常用注解:让生产力爆表!

    springboot常用注解

    "SpringBoot常用注解" SpringBoot框架中,注解(Annotation)是一种Metadata形式的描述,它可以在编译器或 runtime 时提供信息,用于配置 SpringBoot 应用程序。在本文中,我们将详细介绍 SpringBoot 中的常用注解...

    SpringBoot常用注解详解含使用示例(值得珍藏)

    Spring Boot是一个开源框架,旨在简化Spring应用程序的创建和部署。它通过提供自动配置和约定优于配置的...通过了解这些常用注解的特性和使用方法,读者可以更有效地利用Spring Boot框架的功能,提高开发效率和质量。

    Springboot 常用注解汇总说明

    一、启动注解 @SpringBootApplication 二、Controller 相关注解 三、取请求参数值 四、注入bean相关 五、导入配置文件 六、事务注解 @Transactional

    SpringBoot 中常用注解及各种注解作用

    SpringBoot 中常用注解及各种注解作用 SpringBoot 框架中,注解扮演着非常重要的角色,它们可以帮助开发者快速构建应用程序,提高开发效率。下面将对 SpringBoot 中常用注解进行详细的介绍,并解释每个注解的作用。...

    springboot常用框架

    ,包括springboot的注解分析、路径分析、取得内置对象、项目打包、配置环境属性、读取资源文件、Bean配置、模板渲染、 基于yml的多profile配置、基于properties的多profile、添加数据验证、配置错误页、全局异常处理...

    spring注解开发.xmind

    spring注解开发笔记总结,方便网友使用

    微服务基础,常用注解.pdf

    微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 微服务基础,springboot基础,常用注解等 ...

    spring-boot思维导图完整知识点脑图教程

    这里包含了springboot的创建,参数,配置,数据库集成,部署,拦截器等开发中常用的信息。如有错漏更正欢迎来信307793969@qq.com

    SpringBoot框架开发常用注解

    推荐新手java工程师+SpringBoot框架开发中常用注解,SpringBoot入门级必读 @EnableScheduling @EnableTransactionManagement @Configuration @bean @JmsListener @Deprecated @XStreamAlias @EnableAync ...

    springboot FeignClient注解及参数

    FeignClient注解的常用属性包括: * name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。 * url:用于调试,可以手动指定@FeignClient调用的地址。 * decode404:当...

    Spring常用注解(收藏大全).docx

    Spring常用注解(收藏大全) Spring 框架中提供了许多注解,以便于开发者快速、方便地开发应用程序。这些注解可以分为多个类别,包括 bean 声明、依赖注入、配置类相关、切面相关、属性支持、值注入、环境切换等。 ...

    springboot注解详解.pdf

    使用注解的优势有采用纯java代码,不在需要配置繁杂的xml文件,在配置中也可享受面向对象带来的好处.类型安全对重构可以提供良好的支持.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能

    SpringBoot注解文档

    Spring Boot注解文档是理解并有效利用这些注解的关键资源,它涵盖了各种常用的注解以及如何在实际项目中应用它们。 1. `@SpringBootApplication`: 这是Spring Boot的核心注解,结合了`@SpringBootConfiguration`、`...

    Springboot配置类使用和常用注解.md

    Springboot配置类使用和常用注解.md

    Spring Boot 常用注解.rar

    **Spring Boot 常用注解详解** Spring Boot以其简洁的配置、快速的启动和集成众多优秀框架的能力,成为Java开发领域中的热门选择。在Spring Boot应用中,注解起着至关重要的作用,它们简化了配置,使得代码更加简洁...

    Springboot常用开发介绍ppt和相应代码样例

    **SpringBoot常用开发介绍** SpringBoot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如Redis、MongoDB、JPA、RabbitMQ、Quartz等,...

    SpringBoot集成常用组件 Jackson,mybatis,事务,Scheduled,logBack

    4. **Scheduled任务**: SpringBoot的`@EnableScheduling`注解可以开启定时任务功能。然后,我们可以定义带有`@Scheduled`注解的方法,指定执行周期,实现定时任务。例如,可以定时清理数据库、发送邮件等。使用`@...

Global site tag (gtag.js) - Google Analytics