springboot注解

@SpringBootApplication  //表示是主配置类。主配置的字节码对象是SpringApplication.run()方法(启动方法)的参数,

1.@Configuration(配置类)

2.@Bean(返回值注入sppring容器)

//@Configuration //表示这是一个配置类,配置类也是组件
//proxyBeanMethods=true(默认)表示代理这个配置类的方法,调用方法获取的对象都是容器中对象(容器中还是单例的)
@Configuration(proxyBeanMethods=true)
public class MyConfig {


    @Bean  //给容器添加组件(ioc),以方法名作为id,返回值就是容器中的实例,默认单实例的
    public Student student(){
        return new Student();
    }


}

 

@SpringBootApplication  //表示是主配置类
public class SpringMybatisApplication {

    public static void main(String[] args) {
        //返回值类型ConfigurableApplicationContext是ios容器
        ConfigurableApplicationContext run = SpringApplication.run(SpringMybatisApplication.class, args);
        //    可以获得里面的组件
        String[] beanDefinitionNames = run.getBeanDefinitionNames();
        for (String beanName:beanDefinitionNames){
            System.out.println(run.getBean(beanName));

        }
        //获得配置类的组件
        System.out.println(run.getBean("student"));
        System.out.println(run.getBean("student"));
    }

}

1.当/proxyBeanMethods=flase

2.当/proxyBeanMethods=true(默认)

结论:

1.proxyBeanMethods不管为true还是flase,容器中都默认是单实例

2.可以发现当/proxyBeanMethods=true(默认)表示代理这个配置类的方法,调用方法获取的对象都是容器中对象(单例),不会返回一个新对象,也就是依赖容器中的·对象

3.proxyBeanMethods=flase时是每次获取的对象都一样,(方法没被代理,返回一个新对象)

(也就是说springboot会根据这个属性true  or flase来选择是否代理我们的配置类方法;代理的方法就是去spring容器中获取对象,没代理的就该怎么返回怎么返回

 

3.@Component 、 @Controller、@Service、@Reposity   (用法和spring中一样)

4.@ComponentScan、@Import

.4.1@ComponentScan

表示组件扫描,不能和springbootApplication一起用,因为springbootapplication注解被他注解了

(好像可以用@ComponentScans)

4.2@Import

作用给spring容器中注入组件

@Import(组件字节码对象) :会调用无参构造注入spring容器,默认组件名字是全类名

5.@Conditional:使用他的派生注解

条件装配,满足Conditional指定条件的,则组件进行注入。

  5.1@ConditionalOnBean(name = "name")判断容器中是否有名字是name的组件,有注入,没有就不注入,

还可以标注在配置类上,表示类中所有方法都要这个条件成体才能注入对应组件

还有很多个其他的条件装配类。如下

6.@ImportResource("classpath:***.xml")

这样可以将配置文件中配置的bean注入容器

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值