SpringBoot注解(基础)

SpringBoot注解

@Configuration 作用等价于@Component(默认命名策略:类名首字母小写)
    自定义 配置类  相当于xml 配置类  也是一个Bean组件
    配置类列面使用@Bean标注在方法上门ioc容器  注入bean 实例 bean实例 bean实例是不是的单例(yes)
    @Bean(value=”“,initMethod ="" ,destruyMethon= “” )
        value 属性指定beanname   initMethod 竖向之地昂初始化方法名    destruyMethon 属性指定销毁方法名
    3.属性proxyBeanMethods
      3.1 Full模式:默认是true
            用来监测当前IOC容器中是否有此实例,若有则不会再创建,直接返回此单实例;
            当前配置类的实例信息:com.igeek.springboot.config.MyConfig1$$EnhancerBySpringCGLIB$$7c35a8af@aa21042 代理对象
      3.2 Lite模式:指定为false
            每一次调用都会创建新的实例;
            当前配置类的实例信息:com.igeek.springboot.config.MyConfig1@45673f68
      3.3 使用场景
            配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置
            类组件之间有依赖关系,方法会被调用得到之前单实例组件,用Full模式(默认) 
@Bean 
    将当前的方法的返回值  注册到ioc容器中
    默认命名策略 将方法名错位beanName使用
   
@Description  底层注解 @import 导入组件/ @importResource 导入Spring xml 配置文件

 @import 导入组件
    在配置类@Configuration   上门在添加注解 @import
    将导入的组件类型的实例 注册到ioc 容器中 默认使用实例的权利恶魔作为beanname 例如:com.igeek .boot.entity.peroson
 @importResource 导入Spring xml 配置文件
     在配置类@comfiguration上面 在添加注解@ImportResourse
     将xml配置文件导入,让其Bean结点生效使用准备阶段id属性值作为beanname
     
 @Conditional 条件装配
        满足指定的条件,则进行组件注入
    @ConditionalOnXXX  一旦有指定的位置,就会生效如下配置
    @ConditionalOnMissingXXX 一旦没有指定的配置的 ,就会生效如下配置类
    
    例如
        @ConditionalOnClass
        @ConditionalOnWebApplication
        @ConditionalOnBean
        @ConditionalOnMissingBean
        @ConditionalOnMissingClass
   若 没有在ioc容器中 匹配到car类型的实例 则生效配置类MyConfig3
        @ConditionalOnMissingBean(Car.class)
   若在ioc容器中 匹配到car类型的实例 则将c1的bean实例注册到ioc中
        @ConditionalOnBean(Car.class)
   若 没有在ioc容器中 匹配到car类型的实例 则将c1的bean实例注册到ioc中
       @ConditionalOnMissingBean(Car.class)
   若 没有在ioc容器中 匹配到car类型(类名)的实例  则将c1的bean实例注册到ioc中
       @ConditionalOnMissingClass("com.igeek.boot.entity.Car")
开启配置绑定 开启address配置绑定的功能 把这个Address实例注册到ioc容器中
       @EnableConfigurationProperties(Address.class)

 lombok中的常用注解: 作用简化实体类的开发
     1.@Data 提供了set和get方法
     2.@NoArgsConstructor 无参构造方法
     3.@AllArgsConstructor 有参构造方法
     4.@ToString toString方法
     5.@Slf4j 日志对象  进行日志的输出

如何加载properties文件中的内容:
   1.spring:
        @PropertySource("classpath:db.properties")+@Value("${db.username}")
   
   2.springBoot:
        在application.properties文件中,完成配置绑定
        @ConfigurationProperties(prefix = "addr") 通过prefix属性指定要操作的前缀
        @Component
        class Address{}
   
   3.springBoot 底层常用的方式:
       //开启配置绑定 开启address配置绑定的功能 把这个Address实例注册到ioc容器中
        @EnableConfigurationProperties(Address.class)
        public class MyConfig4 { }
   
       //在application.properties文件中,完成配置绑定
        @ConfigurationProperties(prefix = "addr") 通过prefix属性指定要操作的前缀
        class Address{}
   在application.properties文件中 通过prefix属性指定要操作的前缀
        @ConfigurationProperties(prefix = "addr")
        
        
        
  注解:@SpringBootApplication 复合注解  作用:标记主启动类
 
  复合注解  取代了以下三个注解:
      1.@SpringBootConfiguration 声明当前是配置类  作用等价于@Configuration (又等价于@Componment)
      2.@EnableAutoConfiguration 开启自动配置
           2.1 @AutoConfigurationPackage
           2.2 @Import(AutoConfigurationImportSelector.class)
      3.@ComponentScan 配置扫描包
   just run 得到IOC容器(ConcurrentHashMap<String,BeanDefinition> key:唯一标识 value:bean的定义)
        ConfigurableApplicationContext context = SpringApplication.run(HelloSpringBootApplication.class, args);   
   得到IOC容器中 所有的bean定义信息(<bean id="" class=""> 类型,作用域,init初始化方法,destory销毁方法)
        String[] beanDefinitionNames = context.getBeanDefinitionNames();

springBoot中的底层注解的作用

@@Configuration
        直接在类上加上@Configuration注解,告诉SpringBoot,本类是是个配置类,再在方法上添加@Bean注解将它交给容器来注册
        默认的就是单例的,这和spring一样,如果想要它成为多例需要设置一下@Configuration注解里面的proxyBeanMethods属性
    Full模式
        是指proxyBeanMethods = true,开启代理bean的方法,此时调用配置类中每一个给而容器注册组件方法,都会从容器中找组件,保持单例模式。保证了每个@Bean方法无论被调用多少次,返回的组件都是单例的。
    Lite模式
        是指proxyBeanMethods = false,关闭代理bean的方法。容器中不会保存代理对象,每一次调用配置类里面的方法,·都会产生一个新的对象。这可以解决组件依赖的问题。保证了每个@Bean方法调用多少次返回的组件都是新创建的。
@Import 导入组件
    @Import(组件名.class); 
    多的:@Import({组件名.class,组件名.class}); 
@Conditional
       条件装配注解:满足Conditional指定的条件,就进行组件注入,不然不进行组件注入。
@ConfigurationProperties
      进行配置绑定的
    两种方法:
    方法一:@Component+@ConfigurationProperties组合使用
        @ConfigurationProperties(prfix="xxx")
        在核心配置文件applicantion.properties中配置前缀为xxx的值
    方法二:@EnableConfigurationProperties+@ConfigurationProperties组合使用
        @EnableConfigurationPropertise:开启组件属性配置功能,并把这个组件自动注册到容器中。
            需要注意的是: @ConfigurationProperties不会像Spring容器注入相关处理类,只是起到相关标记作用,
            相关处理逻辑还是由@EnableConfigurationPropertise导入处理类来完成。仅仅被标记EnableConfigurationPropertise注解的类,
            默认情况下也不会注册为Bean。

SpringBoot优点

1.创建独立Spring应用
2.内嵌web服务器
3.自动starter依赖,简化构建配置
4.自动配置Spring以及第三方功能
5.无代码生成、无需编写XML
6.SpringBoot是整合Spring技术栈的一站式框架
7.SpringBoot是简化Spring技术栈的快速开发脚手架
8.提供生产级别的监控、健康检查及外部化配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值