1.了解SpringBoot
SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品。
为什么要学习SpringBoot
java一直被人诟病的一点就是臃肿、麻烦,主要原因主要是两点:
- 复杂的配置
- 混乱的依赖管理
而SpringBoot可以很好的解决上述问题,为所有 Spring 的开发者提供一个开箱即用的、非常快速的、广泛接受的入门体验
Spring Boot 主要特征:
- 创建独立的spring应用程序
- 直接内嵌tomcat、jetty和undertow(不需要打包成war包部署)
- 提供了固定化的“starter”配置,以简化构建配置
- 尽可能的自动配置spring和第三方库
- 提供产品级的功能,如:安全指标、运行状况监测和外部化配置等
- 绝对不会生成代码,并且不需要XML配置
2.入门
创建工程,引入依赖,编写Controller
@RestController
@EnableAutoConfiguration
public class HelloController {
@GetMapping("show")
public String test(){
return "hello akun springboot";
}
public static void main(String[] args) {
SpringApplication.run(HelloController.class, args);
}
}
测试
启动器: 为了让SpringBoot帮我们完成各种自动配置,我们必须引入SpringBoot提供的自动配置依赖,我们称为启动器
关于注解 @EnableAutoConfiguration: 是开启spring应用程序的自动配置,SpringBoot基于你所添加的依赖和你自己定义的bean,试图去猜测并配置你想要的配置。
3.优化入门程序
如果有多个Controller,在每一个Controller中都添加一个main方法和@EnableAutoConfiguration注解,这样启动一个springboot程序也太麻烦了。也无法同时启动多个Controller,因为每个main方法都监听8080端口。所以,一个springboot程序应该只有一个springboot的main方法。
所以,springboot程序引入了一个全局的引导类。
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class,args);
}
}
**@SpringBootApplication:**是一个组合注解,这里重点的注解有3个:
- @SpringBootConfiguration:声明当前类是SpringBoot应用的配置类
- @EnableAutoConfiguration:开启自动配置
- @ComponentScan:开启注解扫描
4.配置
java配置主要靠java类和一些注解来达到和xml配置一样的效果,比较常用的注解有:
- @Configuration:声明一个类作为配置类,代替xml文件
- @Bean:声明在方法上,将方法的返回值加入Bean容器,代替标签
- @Value:属性注入
- @PropertySource:指定外部属性文件。
添加application.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/spr
jdbc.username=root
jdbc.password=root
新建JdbcProperties,用来进行属性注入
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
// ... 略
// getters 和 setters
}
在JdbcConfiguration中使用这个属性
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)//启用JdbcProperties的属性配置
public class jdbcConfiguration {
@Autowired
JdbcProperties jdbcProperties;
@Bean
public DataSource dataSource(){
DruidDataSource dataSource=new DruidDataSource();
dataSource.setUrl(jdbcProperties.getUrl());
dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
dataSource.setUsername(jdbcProperties.getUsername());
dataSource.setPassword(jdbcProperties.getPassword());
return dataSource;
}
}
我们在HelloController中打个断点,在网页访问测试:
属性注入成功了!
整个结构
关于SpringBoot要了解更多可以看这篇文章
https://blog.csdn.net/illusory_germ/article/details/100607670