`
raymond.chen
  • 浏览: 1438187 次
  • 性别: 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常用注解.markdown

    springboot常用注解.markdown

    springboot常用注解

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

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

    ### SpringBoot常用注解详解 #### 一、Spring Web MVC 注解 ##### 1. `@RequestMapping` `@RequestMapping` 是 Spring MVC 中的核心注解之一,用于映射 HTTP 请求到处理该请求的具体方法上。该注解可以作用于类...

    springboot常用注解说明

    【Spring Boot常用注解说明】 在Spring Boot框架中,注解起到了至关重要的作用,它们简化了配置,使得开发过程更加高效。以下是一些常见的Spring Boot注解及其详细解释: 1. **@SpringBootApplication** 这是...

    Springboot 常用注解汇总说明

    Spring Boot 常用注解汇总说明 一、启动注解 @SpringBootApplication 在Spring Boot应用中,`@SpringBootApplication`是最核心的注解,它实际上是一个复合注解,包含了`@SpringBootConfiguration`、`@...

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

    ### Spring Boot常用注解详解 #### 一、启动注解 **1.1 @SpringBootApplication** - **定义**: `@SpringBootApplication`是一个复合注解,它整合了`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@...

    40 个 SpringBoot 常用注解.zip

    计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...

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

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

    SpringBoot项目简易搭建-源代码

    解决创建的项目没有src/main/resources文件夹4.SpringBoot常用注解上记文章标号1,2,3可以先看,而【SpringBoot常用注解】东西有点多,建议遇到不理解的注解可以点开【SpringBoot常用注解】进行Ctrl + f进行检索。...

    springboot常用框架

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

    spring注解开发.xmind

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

    springboot之常用注解的演示项目包

    springboot之常用注解的演示项目包

    微服务基础,常用注解.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中几个常用且重要的注解。 #### 二、@RestController `@RestController` 是Spring 4.0之后引入的新注解,它是`@Controller`和`@ResponseBody`的组合。这个注解用于标记控制器类,表明该...

    springboot初学者注解详解 springboot注解.docx

    #### 一、Spring Boot 常用注解 ##### 1. `@SpringBootApplication` - **定义**:`@SpringBootApplication` 是 Spring Boot 的核心注解,它集成了三个注解的功能:`@Configuration`、`@EnableAutoConfiguration` ...

Global site tag (gtag.js) - Google Analytics