SpringBoot
注解的方式
Java配置
JdbcConfig.java
//使用java 配置
@Configuration //声明是一个配置类
@PropertySource("classpath:/config/jdbc.properties") //指定属性文件的路径是:jdbc.properties
public class JdbcConfig {
@Value("${jdbc.url}") //通过 @Value 为属性注入值
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean //@Bean将方法的返回值加入Spring容器中。
public DruidDataSource dataSource() {
// TODO Auto-generated method stub
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
#jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/nutzdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=root
jdbc.password=123456
使用SpringBoot 的属性注入(Spring Boot推荐的)
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/nutzdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
JdbcProperties.java
@ConfigurationProperties(prefix = "spring.datasource") //通过@ConfigurationProperties声明当前类为属性读取类
@Data
public class JdbcProperties {
private String url;
private String username;
private String password;
private String driverClassName;
}
JdbcConfig.java
@Configuration
//通过@EnableConfigurationProperties(JdbcProperties.class)来声明要使用JdbcProperties这个类的对象
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
// @Autowired
// private JdbcProperties prop; //第一种使用方式
// private JdbcProperties jprop;
// public JdbcConfig2(JdbcProperties jprop) {
// this.jprop = jprop; //第二种使用方式
// }
@Bean
public DruidDataSource dataSource(JdbcProperties jdbc) { //第三种使用方式
// TODO Auto-generated method stub
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(jdbc.getDriverClassName());
dataSource.setUrl(jdbc.getUrl());
dataSource.setUsername(jdbc.getUsername());
dataSource.setPassword(jdbc.getPassword());
return dataSource;
}
}
更优雅的注入
@Configuration
public class JdbcConfig{
@Bean
// 声明要注入的属性前缀,Spring Boot会自动把相关属性通过set方法注入到DataSource
@ConfigurationProperties(prefix ="spring.datasource")
public DruidDataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
return dataSource;
}
}
使用的前提是:该类必须有对应属性的set方法!
自动配置原理
-
@SpringBootApplication--@EnableAutoConfifiguration
-
默认配置原理
默认配置类--spring.factories
默认配置属性--通过@EnableAutoConfifiguration注解引入properties文件,可在application.yml/application.properties 自定义配置覆盖默认属性值
多配置文件
- 如果properties和yml文件都存在,如果有重叠属性,默认以Properties优先
- 当一个项目中有多个yml配置文件的时候,可以以application-**.yml命名,然后再在application.yml中激活即可,如
#加载其它配置文件
spring:
profiles:
active: abc,def
整合框架
-
整合Spring MVC、Mybatis
-
Junit
@RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class RedisTest { @Autowired private RedisTemplate redisTemplate; @Test public void test() { ...... } }
-
Redis
项目部署
在pom.xml添加插件spring-boot-maven-plugin,使用maven的命令package打包,之后在项目下的 target 目录中将有jar包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
java -jar xxx-1.0-SNAPSHOT.jar