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类

  1. @Configuration
  2. public class ExampleConfiguration {
  3. @Value("com.mysql.jdbc.Driver")
  4. private String driverClassName;
  5. @Value("jdbc://xxxx.xx.xxx/xx")
  6. private String driverUrl;
  7. @Value("${root}")
  8. private String driverUsername;
  9. @Value("123456")
  10. private String driverPassword;
  11. @Bean(name = "dataSource")
  12. public DataSource dataSource() {
  13. BasicDataSource dataSource = new BasicDataSource();
  14. dataSource.setDriverClassName(driverClassName);
  15. dataSource.setUrl(driverUrl);
  16. dataSource.setUsername(driverUsername);
  17. dataSource.setPassword(driverPassword);
  18. return dataSource;
  19. }
  20. @Bean
  21. public PlatformTransactionManager transactionManager() {
  22. return new DataSourceTransactionManager(dataSource());
  23. }
  24. }

这样,在项目中

@Autowired

private DataSource dataSource;

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

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

@Configuration和@Bean的用法和理解的更多相关文章

  1. @Configuration和@Bean

    @Configuration可理解为用spring的时候xml里面的标签 @Bean可理解为用spring的时候xml里面的标签 Spring Boot不是spring的加强版,所以@Configur ...

  2. 14 - springboot的@Configuration、@Bean、@Import()、@ImportResource()、@Conditional说明

    1.@Configuration.@Bean.@Import().@ImportResource().@Conditional 分析源码的时候总会见到标题中的这几个注解,因此:弄一篇博客来说明一下吧, ...

  3. @Configuration 和 @Bean

    1. @Bean: 1.1 定义 从定义可以看出,@Bean只能用于注解方法和注解的定义. @Target({ElementType.METHOD, ElementType.ANNOTATION_TY ...

  4. Springboot@Configuration和@Bean详解

    Springboot@Configuration和@Bean详解 一.@Configuration @Target({ElementType.TYPE}) @Retention(RetentionPo ...

  5. Spring的Java配置方式—@Configuration和@Bean实现Java配置

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @BeanSpring的Java配置方式是通过 @Configuration 和 @Be ...

  6. @Configuration与@Bean作用

    Spring的Java配置方式是通过@Configuration和@Bean这两个注解来实现 @Configuration可以作用在任意类上,表示该类是一个配置类,其实就相当于一个xml配置文件. @ ...

  7. Spring @Configuration 和 @Bean 注解

    @Configuration 和 @Bean 注解 带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源.@Bean 注解告诉 Spri ...

  8. HAVING COUNT(*) > 1的用法和理解

    HAVING COUNT(*) > 1的用法和理解 作用是保留包含多行的组. SELECT class.STUDENT_CODE FROM crm_class_schedule class GR ...

  9. 【转】关于 Goroutine Channel Select 的用法和理解

    原文:https://blog.csdn.net/jfkidear/article/details/88661693 ----------------------------------------- ...

随机推荐

  1. oracle中的一些基本概念

    Oracle数据库的物理文件是存储在磁盘上的数据文件.控制文件和日志文件的总称.数据文件和日志文件是数据库中最重要的文件.数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间由数据 ...

  2. Python学习笔记011——内置函数eval()

    1 描述 eval()  函数用来执行一个字符串表达式,并返回表达式的值 2 语法 原文 eval(expression[, globals=None[, locals=None]]) express ...

  3. 摘:分配和释放BSTR的内存

    当您创建 BSTR的并将它们使用以避免内存泄漏的它们在COM对象之间时,必须注意在将内存的.       当 BSTR 在接口中保持,必须释放其内存,当处理它.       但是,那么,当 BSTR ...

  4. 温故而知新 gulp.src 指定数组文件夹

    gulp.src语法是基于这个库来实现的,所以详情请看这个API: https://www.gulpjs.com.cn/docs/api/ https://github.com/isaacs/node ...

  5. Python 爬虫 数据提取

    一下子运行 七八十个  select 将会是什么样的体验呢? 业务部门提供了一个需要,要求从爬虫数据中提取出88家的数据, 并且也提供了一个excel表格,如下图: 这个时候我们可以通过拍卖行,拍卖时 ...

  6. nginx配置文件中location说明

    1 nginx配置文件 文件结构 ... #全局块 events { #events块 ...} http #http块 { ... #http全局块 server #server块 { ... #s ...

  7. Nginx(二):虚拟主机配置

    什么是虚拟主机? 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功 ...

  8. 配置 Sliverlight 跨域访问策略

    Silverlight程序在访问非本域资源时,需要在相应的域根目录下建立跨域访问策略文件才能进行访问. 文件名:clientaccesspolicy.xml 文件内容: <?xml versio ...

  9. Latch: Row Cache Objects (One bug?)

    During the performance test, observe the following condition in the database server from EM, And the ...

  10. [py]python的继承体系

    python的继承体系 python中一切皆对象 随着类的定义而开辟执行 class Foo(object): print 'Loading...' spam = 'eggs' print 'Done ...