SpringBoot中基本舍弃了繁琐的xml方式来进行配置转而使用更加简洁的注解来进行配置,有很多需要我们学习。
虽然舍弃了xml配置,SpringBoot给我们提供了很多注解来配置,比如
/**
* @author KomeijiYUI
*/
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driverClassName);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
其中包含了很多个注解,接下来稍微分析一下。
@Configuration 注解
声明一个类是一个配置类
@PropertySource("classpath:example.properties") 注解
声明属性的文件的路径是classpath:example.properties
@Value("property")
通过@Value可以为配置类中相应的属性注入路径的properties文件中对应的值
@Bean
通过@Bean将方法声明为一个注册Bean的方法,而Spring Boot则会自动调用该方法,将方法的返回值加入Spring容器中。
接下来就可以在工程中的任意位置通过@Aurowired注入DataSource了!
/**
* @author KomeijiYUI
*/
@RestController
public class HelloController {
@Autowired
private DataSource dataSource;
@GetMapping("hello")
public String hello() {
return "hello, spring boot!" + dataSource;
}
}
编写了一个简单的Controller对象,通过启动Spring Boot来访问 localhost:8080/hello 试验
使用debug可以查看到dataSource对象中属性已经被注入!