spring_第三方bean管理和依赖注入


第三方bean管理
  • 使用独立的配置类管理第三方bean

    public class JdbcConfig {
        @Bean
        public DataSource dataSource() {
            DruidDataSource ds = new DruidDataSource();
            ds.setDriverClassName("com.mysql.jdbc.Driver");
            ds.setUrl("jdbc:mysql://localhost:3306/db7");
            ds.setUsername("root");
            ds.setPassword("731822zz");
            return ds;
        }
    }
  • 将独立的配置类加入核心配置

    • 方式一:导入类

      public class JdbcConfig {
          @Bean
          public DataSource dataSource() {
              DruidDataSource ds = new DruidDataSource();
              //相关配置
              return ds;
          }
      }
    • 使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式

      @Configuration
      @Import({JdbcConfig.class})
      public class SpringConfig {
      }
    • 方式二:扫描式

      @Configuration
      public class JdbcConfig {
          @Bean
          public DataSource dataSource() {
              DruidDataSource ds = new DruidDataSource();
              //相关配置
              return ds;
          }
      }
    • 使用@ComponentScan注解扫描配置类所在的包,加载对应的配置类信息

      @Configuration
      @ComponentScan("com.itheima.config")
      public class SpringConfig {
      }
第三方bean依赖注入
  • 简单类型依赖注入

    public class JdbcConfig {
        @Value("com.mysql.jdbc.Driver")
        private String driver;
        @Value("jdbc:mysql://localhost:3306/db7")
        private String url;
        @Value("root")
        private String userName;
        @Value("731822zz")
        private String password;
    
        @Bean
        public DataSource dataSource() {
            DruidDataSource ds = new DruidDataSource();
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(userName);
            ds.setPassword(password);
            return ds;
        }
    }
  • 引用类型依赖注入

    @Bean 
    public DataSource dataSource(BookDao bookDao) {
            System.out.println(bookDao);
            DruidDataSource ds = new DruidDataSource();
            return ds;
    }
  • 引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动转配对象


文章作者: han yue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 han yue !
评论
  目录