zoukankan      html  css  js  c++  java
  • @Configuration和@Bean的用法和理解

    spring Boot提倡约定优于配置,如何将类的生命周期交给spring

    1、第一种自己写的类,Controller,Service。 用@controller @service即可

    2、第二种,集成其它框架,比如集成shiro权限框架,集成mybatis分页插件PageHelper,第三方框架的核心类都要交于Spring大管家管理

    @Configuration可理解为用spring的时候xml里面的<beans>标签

    @Bean可理解为用spring的时候xml里面的<bean>标签

    Spring Boot不是spring的加强版,所以@Configuration和@Bean同样可以用在普通的spring项目中,而不是Spring Boot特有的,只是在spring用的时候,注意加上扫包配置

    <context:component-scan base-package="com.xxx.xxx" />,普通的spring项目好多注解都需要扫包,才有用,有时候自己注解用的挺6,但不起效果,就要注意这点。

    Spring Boot则不需要,主要你保证你的启动Spring Boot main入口,在这些类的上层包就行

    就像这样,DemoApplication是启动类,关于启动类的位置放置,在另一篇博客有专门的去分析。

    @Configuration和@Bean的Demo类

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. @Configuration    
    2. public class ExampleConfiguration {    
    3.     
    4.     @Value("com.mysql.jdbc.Driver")    
    5.     private String driverClassName;    
    6.     
    7.     @Value("jdbc://xxxx.xx.xxx/xx")    
    8.     private String driverUrl;    
    9.     
    10.     @Value("${root}")    
    11.     private String driverUsername;    
    12.     
    13.     @Value("123456")    
    14.     private String driverPassword;    
    15.     
    16.     @Bean(name = "dataSource")    
    17.     public DataSource dataSource() {    
    18.         BasicDataSource dataSource = new BasicDataSource();    
    19.         dataSource.setDriverClassName(driverClassName);    
    20.         dataSource.setUrl(driverUrl);    
    21.         dataSource.setUsername(driverUsername);    
    22.         dataSource.setPassword(driverPassword);    
    23.         return dataSource;    
    24.     }    
    25.     
    26.     @Bean    
    27.     public PlatformTransactionManager transactionManager() {    
    28.         return new DataSourceTransactionManager(dataSource());    
    29.     }    
    30.     
    31. }  

    这样,在项目中

    @Autowired

    private DataSource dataSource;

    的时候,这个dataSource就是我们在ExampleConfiguration中配的DataSource

    来源:https://www.cnblogs.com/soundcode/p/6477974.html

  • 相关阅读:
    显示磁盘信息
    给VG增加磁盘,给文件目录增加空间
    第8.11节 Python类中记录实例变量属性的特殊变量__dict__
    Python中format_map与format字符串格式化的区别
    生成器函数与函数的区别
    什么是Python生成器?与迭代器的关系是什么?
    第8.10节 使用__class__查看Python中实例对应的类
    Python运算符的优先级是怎样的?
    Python怎么控制将一个整数输出成指定长的十六进制数?
    Python中函数的参数带星号是什么意思?
  • 原文地址:https://www.cnblogs.com/kongxc/p/8579469.html
Copyright © 2011-2022 走看看