前言
在介绍IoC
初识时我们已经讲到了@Bean
的简单使用。上节我们也讲到了注解@ComponentScan
的使用。大家感兴趣的话可参考以下文章
SpringBoot(13) — IOC初识
SpringBoot(15) — @ComponentScan 使用详解
鉴于我们对IoC
注解装配的两种方式的了解。很显然,在批量装配上,@ComponentScan
这种大面积扫描装配的方式更有优势,那是不是代表@Bean
就一无是处了呢。答案是否定的,那么下面我们就来讲解@Bean
的一种重要使用方式——自定义第三方Bean
今天涉及的内容有:
-
@Bean
在特别场景的使用 - 数据库依赖
- 数据库纯
Java
代码装配 - 测试查询数据库数据
先来波测试结果:
======我是测试啊=====
2021-08-05 15:18:06.195 INFO 19124 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-2} inited
id=2 name=小明 age=18
id=3 name=小华 age=20
student=Student(id=2, name=小明, age=18)
student=Student(id=3, name=小华, age=20)
一. @Bean 在特别场景的使用
在SpringBoot
的开发过程中,我们经常会使用到第三方依赖,且很多时候希望能把第三方库中的类能装配到IoC
中,这样我们就可以方便的使用了。针对这个场景,@Bean
的优势就出来了。下面在该场景上拿出一个典型的例子讲解,就是配置数据库,并在SpringBoot
中注入数据库对象,最后便于在项目中进行数据库数据处理。接下来结合此例具体讲解@Bean
在这方面的使用。
二. 数据库依赖
在SpringBoot
开发中,我们已经知道,数据库可以分很多种,然后数据库连接池的框架也有很多。这里,我以选择 mysql
数据库 及 阿里的druid
(德鲁伊)数据库连接池来进行数据库相关操作。[ps:druid
是一个比较优秀的数据库连接池框架]
先在pom.xml
中添加相关依赖:
<!-- mysql数据库连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- druid(阿里德鲁伊)连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
值得注意的是,我们在做测试时,一定要开启mysql
数据库服务
下面来看看我用于测试的数据表demo
(注:数据库名为test_pro
,数据表名为demo
):

可以看到该表中含有两条数据。我们要去查这个表的数据,则需要建立一个实体类来承接这些数据。下面给出数据实体类
Student
代码:
@Data
public class Student {
private int id;
private String name;
private int age;
}
三. 数据库纯Java代码装配
接着我们需要将数据库连接相关操作写成一个配置类,以便注入到IoC
容器中。
这里IoC
装配操作主要涉及到两个注解:@Bean
和Configuration
。
下面需要写一个数据库配置类DataSourceConfig
,主要用于设置数据库连接基本配置,如数据库连接账号
,密码
等信息。DataSourceConfig
代码如下:
网友评论