SpringBoot之注解

注解好强大,这里把遇到的注解逐步更新上来,做个记录。

@Import

手动导入一个没有注解的类

定义一个类

public class dog {
}
@SpringBootApplication
@Import({dog.class})
public class DemoApplication extends SpringBootServletInitializer {

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DemoApplication.class);
    }
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class, args);
        System.out.println(context.getBean(dog.class));
        System.out.println(context.getBean(dog.class));
    }

输出如下:

 

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})

exclude为排查数据库,排除默认的数据库自动加载

 

@Bean

Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理

示例:写一个dog类,在写一个cat类

@Component
public class dog {

    @Bean
    public  cat getCat()
    {
        cat ct = new cat();
        System.out.println(ct);
        return ct;
    }
}
public class cat {
}
	public static void main(String[] args) {

		ConfigurableApplicationContext context =SpringApplication.run(SecondApplication.class, args);
		System.out.println(context.getBean(dog.class));
		System.out.println(context.getBean(cat.class));
	}

可以看到,

 果然这个类交给了spring管理,两个类是一样的。

另外,@Bean 注释的函数,还可以传递参数,但是传递的参数的类型,必须也要有@Bean注释过。

感觉spring的逻辑是这样的,先找类型,再找参数名字一样的,如果找不到,就按照类型来。

看下面的例子

@Component
public class dog {

    @Bean
    public  pick firstpick()
    {
        return new pick(1);
    }
    @Bean pick secondpick()
    {
        return new pick(2);
    }
    @Bean
    public  cat getCat(pick firstpick ,pick secondpick)
    {
        System.out.println("firstpick = "+firstpick.m_i);
        System.out.println("secondpick ="+secondpick.m_i);
        cat ct = new cat();
        System.out.println(ct);
        return ct;
    }
}

看输出:

 

@ConfigurationProperties

添加yml的配置,再这里添加

 

好坑,@ConfigurationProperties(prefix = "myyml") 这里的myyml只能写小写。

而不是文件里面的大写,查了我好几个小时

 

这里还有一个注意事项:

就是默认会去读取application.yml 但是我们还可以让其去读取application-dev.yml的配置文件。增加下面配置即可。

spring:
    # 环境 dev|test|prod
    profiles:
        active: dev

@Value

可以用来获取配置文件的值

举个列子

    @Value("${web.upload-files}")
    private String uploadFilePath;

配置文件这么写:

 打印这个值 ,结果OK。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值