• @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

  • 相关阅读:
    腾讯QQ强制下线,每天可能强抢会员300万元
    visual studio 2010 winform程序不能添加对system.web的引用
    一个用来将Excel中同一个人的多行记录中的特定列合并到第一行的宏
    很希望看到微软来一次“因为QQ未经用户允许扫描硬盘,在所有window平台拒绝运行QQ”
    windows2003的数据执行保护会造成无法正常安装SQL SERVER
    改变jboss部署目录(虚拟目录)
    SecureCRT6.5.0英文版,提示数据库里没有找到防火墙"无"
    spring注解事务
    windows下查看端口被哪个程序占用
    union和union all区别
  • 原文地址:https://www.cnblogs.com/soundcode/p/6477974.html
Copyright © 2020-2023  润新知