java代码方式配置(读取配置文件中的变量)
一 . 先了解几个相关注解
java配置主要靠java类和一些注解,比较常用的注解有:
@Configuration:声明一个类作为配置类,代替xml文件
@Bean:声明在方法上,将方法的返回值加入Bean容器,代替<bean>标签
@Value:属性注入
@PropertySource:指定外部属性文件
二. 实战~
目的:比如可以把xml里面的数据库配置信息,用java代码方式配置
实现步骤:
1.添加依赖(添加Alibaba的druid数据库连接)
2.创建数据库
3.创建数据库连接参数的配置文件jdbc.properties
4.创建编写配置类
5.控制器 注入数据源并使用
=================
1.添加依赖pom.xml(添加Alibaba的druid数据库连接)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!--SpringBoot父工程--> <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.4.RELEASE</version> </parent> <groupId>org.cc8w</groupId> <artifactId>javaboot_test</artifactId> <version>1.0-SNAPSHOT</version> <!--java编译版本,父工程已经指定了这样的变量--> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--SpringBoot Web启动器(不用写版本跟随父版本)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency> </dependencies> </project>
2.创建数据库(略)
3.创建数据库连接参数的配置文件jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mini_card jdbc.username=root jdbc.password=89757
4.创建编写配置类
package com.cc8w.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; @Configuration @PropertySource("classpath:jdbc.properties") public class JdbcConfig { @Value("${jdbc.driverClassName}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClassName); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } }
5.控制器 注入数据源并使用
package com.cc8w.home.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.sql.DataSource; @RestController @RequestMapping("home/test") public class JdbcTest { @Autowired private DataSource dataSource; @RequestMapping("jtest") public String jTest(){ System.out.println(dataSource); System.out.println("jTest22"); return "null"; } }
6.项目接口
数据库连接结果也被打印到控制台了.