目录
准备工作: 先创建一个maven项目,并pom.xml文件导入相关依赖。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.19</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.19</version>
</dependency>
<!-- 白盒测试依赖 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<!-- 使用日志依赖 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.3.0-alpha14</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
</dependencies>
1.创建一个资源配置文件 jdbc.properties
写入数据库相关配置
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/mydb
jdbc.username=root
jdbc.password=
2. 创建一个配置数据库类 JdbcConfig
@Bean:用于当前的该定义为一个bean 对象,相当于 xml 文件中的<bean id="" class=""/></bean>配置 (id属性的值默认就是方法名称)
@PropertySource:用于加载Properties属性配置文件,它需要指定配置文件所在的路径和文件名称
@Value:用于将基本数据类型或String类型的值进行注入,它等价于<bean/>便签中的 value属性。 在指定值时如果值是变量,则需要使用 ${变量名称} 的方式注入,如果不使用 ${} 的话则把字符赋值给变量
@PropertySource({"classpath:jdbc.properties"})
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String user;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource getDataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(user);
ds.setPassword(password);
return ds;
}
@Bean
public Connection getConnection(@Autowired DataSource ds) {
Connection conn = null;
try {
conn = ds.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
return conn;
}
}
3.创建一个配置类 SpringConfig
@Configuration: 表示当前的类是一个配置类 它就相当于spring.xml(applicationContext.xml)文件
@ComponentScan:用于扫描指定包下的哪些类添加了@Component、@Service、@Repository、@Controller、@Autowired 等注解
@Import: 导入别的配置类
@Configuration
@ComponentScan(basePackages = {"com.funny"})
@Import(JdbcConfig.class)
public class SpringConfig {
}
4.创建一个测试类 SpringTest
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = SpringConfig.class)
public class SpringTest {
@Test
public void test01() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
Connection conn = context.getBean(Connection.class);
System.out.println(conn);
}
}