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

    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入口,在这些类的上层包就行

    用@Bean注解的方法:会实例化、配置并初始化一个新的对象,这个对象会由spring IoC 容器管理。

    实例:

    @Configuration
    public class AppConfig {
     
        @Bean
        public MyService myService() {
            return new MyServiceImpl();
        }
     
    }

     生成对象的名字:默认情况下用@Bean注解的方法名作为对象的名字。但是可以用 name属性定义对象的名字,而且还可以使用name为对象起多个名字

    @Configuration
    public class AppConfig {
     
        @Bean(name = "myFoo")
        public Foo foo() {
            return new Foo();
        }
     
    }
    @Configuration
    public class AppConfig {
     
        @Bean(name = { "dataSource", "subsystemA-dataSource", "subsystemB-dataSource" })
        public DataSource dataSource() {
            // instantiate, configure and return DataSource bean...
        }
     
    }

    @Bean 一般和 @Component或者@Configuration 一起使用:@Component和@Configuration不同之处

    在 @Component 注解的类中不能定义 类内依赖的@Bean注解的方法。@Configuration可以。

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

    @Configuration和@Bean的Demo类

    @Configuration  
    public class ExampleConfiguration {  
      
        @Value("com.mysql.jdbc.Driver")  
        private String driverClassName;  
      
        @Value("jdbc://xxxx.xx.xxx/xx")  
        private String driverUrl;  
      
        @Value("${root}")  
        private String driverUsername;  
      
        @Value("123456")  
        private String driverPassword;  
      
        @Bean(name = "dataSource")  
        public DataSource dataSource() {  
            BasicDataSource dataSource = new BasicDataSource();  
            dataSource.setDriverClassName(driverClassName);  
            dataSource.setUrl(driverUrl);  
            dataSource.setUsername(driverUsername);  
            dataSource.setPassword(driverPassword);  
            return dataSource;  
        }  
      
        @Bean  
        public PlatformTransactionManager transactionManager() {  
            return new DataSourceTransactionManager(dataSource());  
        }  
      
    }

    这样,在项目中

    @Autowired

    private DataSource dataSource;

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


    ————————————————
    版权声明:本文为CSDN博主「有逼格d伊凡」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u012260707/article/details/52021265

  • 相关阅读:
    Linux上安装rz和sz命令
    性能测试场景设计之容量测试场景设计
    查看oracle/mysql数据库版本号
    查看weblgic/Tuxedo/WebSpere(WAS)/Tomcat中间件版本
    AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令
    常用的监控系统资源的工具
    性能瓶颈的识别方法
    性能测试的类型(负载/压力/并发/可靠性)
    Loadrunner做性能测试的主要步骤
    性能测试的主要测试阶段
  • 原文地址:https://www.cnblogs.com/yss818824/p/12289868.html
Copyright © 2011-2022 走看看