首页 > 其他分享 >Springcloud学习笔记51--@Configuration+@Bean实现自动化装配,解决第三方jar中类bean交给spring管理

Springcloud学习笔记51--@Configuration+@Bean实现自动化装配,解决第三方jar中类bean交给spring管理

时间:2022-11-02 17:02:48浏览次数:59  
标签:name -- spring dataSourceProperties DataSource Springcloud druidDataSource Confi

1.@Configuration+@Bean编写配置类

此时,第三方类为DataSource;

/**
 * @Author lucky
 * @Date 2022/4/1 9:18
 * 配置数据库连接池,注入DataSource
 */
@Configuration
public class DruidConfig {
    @Autowired
    private DataSourceProperties dataSourceProperties;

    @Bean
    public DataSource druidDataSource(){
        DruidDataSource druidDataSource=new DruidDataSource();
        druidDataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
        druidDataSource.setUrl(dataSourceProperties.getUrl());
        druidDataSource.setUsername(dataSourceProperties.getUsername());
        druidDataSource.setPassword(dataSourceProperties.getPassword());
        druidDataSource.setInitialSize(dataSourceProperties.getInitialSize());
        druidDataSource.setMinIdle(dataSourceProperties.getMinIdle());
        druidDataSource.setMaxActive(dataSourceProperties.getMaxActive());
        druidDataSource.setMaxWait(dataSourceProperties.getMaxWait());
        druidDataSource.setTimeBetweenEvictionRunsMillis(dataSourceProperties.getTimeBetweenEvictionRunsMillis());
        druidDataSource.setMinEvictableIdleTimeMillis(dataSourceProperties.getMinEvictableIdleTimeMillis());
        druidDataSource.setValidationQuery(dataSourceProperties.getValidationQuery());
        druidDataSource.setTestWhileIdle(dataSourceProperties.isTestWhileIdle());
        druidDataSource.setTestOnBorrow(dataSourceProperties.isTestOnBorrow());
        druidDataSource.setTestOnReturn(dataSourceProperties.isTestOnReturn());

        try {
            druidDataSource.init();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return druidDataSource;
    }

}

2.测试案例

@RestController
@RequestMapping("/hello")
@Api
public class HelloController {
    @Autowired
    DruidConfig druidConfig;

    @PostMapping("/login")
    @ApiOperation(value = "你好")
    public void login(@RequestParam @ApiParam(name="name",value="对话人",required=true) String name){
        DataSource dataSource = druidConfig.druidDataSource();
        DataSource dataSource2 = druidConfig.druidDataSource();

        System.out.println("hello!"+name);

    }
}

通过自动装配,生成的DataSource被spring托管的,单例模式;

 

标签:name,--,spring,dataSourceProperties,DataSource,Springcloud,druidDataSource,Confi
From: https://www.cnblogs.com/luckyplj/p/16851572.html

相关文章

  • #yyds干货盘点# 前端歌谣的刷题之路-第一百四十三题-双列布局-浮动
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • 行为型模式-责任链模式
    概述在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每......
  • Hadoop入门(2)——环境准备
    CentOS环境环境要求使用VMware虚拟机搭建基于CentOS7.5的Hadoop环境:cpu核数(需要搭建3台Hadoop组成集群,加上Windows本机,所以可以分配的数量为本机的cpu核数除以4)内存至......
  • qt错误?undefinedreferenceto`_imp___ZN10QTcpSocketD1Ev
    错误信息:undefinedreferenceto`_imp___ZN10QTcpSocketD1Ev'undefinedreferenceto`_imp___ZN10QTcpSocketC1EP7QObject'undefinedreferenceto`_imp___ZN10QTcpSo......
  • 第五章13
    用int会溢出哦【题目描述】 国际象棋棋盘有64格,若在第1格放1粒谷;第2格放2粒谷;第3格放4粒谷;第4格放8粒谷……如此一直放到第n格(n小于等于64)。假设2000000粒谷有一吨重,......
  • C语言strtok()函数:字符串分割_F_hawk189_新浪博客
    头文件:#include函数定义:char*strtok(char*s,constchar*delim);函数说明:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串......
  • SOJ1669 题解
    题意传送门给定长度为\(N\)的数组\(a\)与\(Q\)个区间,还有一个整数\(M\)。你可以将至多\(M\)个\(a_i\)个变为\(0\),求\[\sum_{i=1}^Q\max_{l_i\lej\ler......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百四十四题-双列布局-定位
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • SpringBoot自定义注解+异步+观察者模式实现业务日志保存
    一、前言我们在企业级的开发中,必不可少的是对日志的记录,实现有很多种方式,常见的就是基于AOP+注解进行保存,但是考虑到程序的流畅和效率,我们可以使用异步进行保存,在高并发情......
  • C语言 初识C语言06 注释
    注释:1、代码中有不需要的代码可以直接删除,也可以注释掉;2、代码中有些代码比较难懂,可以加一下注释文字。注释有两种风格:1、C语言风格的注释/*xxxxxxx*/缺陷:不能嵌套注释2、C......