• 我爱Java系列之---【SpringBoot中常用的注解和两种注入方式】


    @EnableConfigurationProperties(DataSourceProperties.class) 来声明要使用DataSourceProperties 这个类并初始化该类对象,该类不用放在IOC容器中,可以通过该注解直接使用。

    2.@Component:一般写在类上边,通过该注解将当前类初始化到Spring的IOC容器中,其他类若想调用,直接用@Autowired去容器中拿。

    3.@Confifiguration: 一般写在类上边,标明该类是一个配置类,被注解的类内部一般包含一个或多个被@Bean注解的方法。相当于把该类作为spring的xml配置文件中的 <beans></beans> 。

     

    4.@Bean注解的方法,这些方法将会被spring进行扫描,并初始化到Spring容器,bean的id为方法名。@Bean注解主要用在@Confifiguration注解的类里,也可以用在@Component注解的类里。

    5.@ConfifigurationProperties:注解声明当前类为属性读取类,这个注解并不会初始化该类对象到IOC中,prefix="jdbc" 读取配置文件中(properties或yml),前缀为jdbc的值。

    *****************************************************************************

    常见的两种注入方式:

      第一种注入方式:如果我们需要将配置文件的数据库连接参数,读取到java对象中,可以用@Component@ConfifigurationProperties注解实现。

        1)新建application.properties   

    jdbc.driverClassName=com.mysql.jdbc.Driver 
    jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot
    jdbc.username=root
    jdbc.password=123456

        2)新建一个类,用来进行属性绑定并注入:

    /*** @ConfigurationProperties 注解声明当前类为属性读取类 * @Component 注解将当前类JdbcProperties初始化到IOC中 */ 
    @Component
    @ConfigurationProperties(prefix = "jdbc")
    public class JdbcProperties {
    private String url;
    private String driverClassName;
    //此处省略get和set方法,及部分属性

        3)JdbcProperties已被初始化到IOC中,我们就可以通过spring的bean注入使用了

      第二种注入方式:这里仍然以配置数据库为例,使用@ConfifigurationProperties@EnableConfifigurationProperties完成。

        1)导入数据源maven坐标

    <dependency> 
        <groupId>com.alibaba</groupId> 
        <artifactId>druid</artifactId>
         <version>1.1.6</version>
    </dependency>

        2)新建一个类,用来进行属性注入:

    @ConfigurationProperties(prefix = "jdbc") 
    public class DataSourceProperties{
        private String url; 
        private String driverClassName;
        private String username; 
        private String password;
         // ... 略 // getters 和 setters
     }
        3)在DataSourceConfifig中使用这个DataSourceProperties属性读取类对象:
    @Configuration  //标明该类是一个配置类

    @EnableConfigurationProperties(DataSourceProperties.class)//直接声明要使用DataSourceProperties类,来读取配置文件
    public class DataSourceConfig {
        @Bean
        public DataSource dataSource(DataSourceProperties properties){
            DruidDataSource druidDataSource = new DruidDataSource();
            druidDataSource.setUsername(properties.getUsername());
           druidDataSource.setDriverClassName(properties.getDriverClassName());
            druidDataSource.setUrl(properties.getUrl());
            druidDataSource.setPassword(properties.getPassword());
            return druidDataSource;
    }
    }

        4)测试结果:

    注意:import javax.sql.DataSource;

    总结:
    方式1:@Component@ConfifigurationProperties,@Autowired注解实现。
    方式2:@ConfifigurationProperties + @EnableConfifigurationProperties注解实现。
     
    愿你走出半生,归来仍是少年!
  • 相关阅读:
    JMeter参数化及断言的使用
    JMeter基础概念
    postman关联
    postman参数化
    postman发送请求的简单操作
    postman的简单介绍及运用
    javascript小记五则:用JS写一个图片左右自由滚动的“跑马灯”效果
    javascript小记四则:用JS写一个滚动横条文字,可以根据需要进行修改;
    javascript小记三则:ASP.NET启动web调试,窗体自动放大的方法
    JavaScript小记二则:接上一节:用.net写Textbox控件关于数字的判断的另一则方法
  • 原文地址:https://www.cnblogs.com/hujunwei/p/11291341.html
Copyright © 2020-2023  润新知