SpringBoot是什么
从本质上来说,Springboot是一个专注于框架的框架。Spring Boot就是对各种框架的整合,让他们集成在一起更加简单。目前ssm框架还是比较常用的,其中ss指的无非就是Spring和SpringMVC,我们可以简单的认为“Spring Boot >= Spring + SpringMVC”。Spring Boot的配置极其简单,可以让你不用或者只需要很少的配置就可以快速运行项目。
Spirng Boot的优缺点
优点
- 快速构建项目
对主流开发框架的无配置集成
spring-boot-starter-web启动器自动依赖其它组件,减少了maven配置
项目可以独立运行,无需外部依赖Servlet容器(自带一个Tomcat)
内嵌离各种servlet容器,Tomcat,Jetty等,现在不用打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行了(java -jar .jar),所有的依赖都在一个jar包内。可以以下命令修改tomcat的端口号:(java -jar .jar –server.port=9090)
- 提供运行时的应用监控
- 极大提高开发部署效率(还是因为配置简单)
- 与云计算天然集成
缺点
- Spring Boot作为一个微框架,离微服务的实现还是有距离的。没有提供相应的服务发现和注册的配套功能,自身的acturator所提供的监控功能,也需要与现有的监控对接。没有配套的安全管控方案,对于REST的落地,还需要自行结合实际URI的规范化工作。
快速入门
上面提到使用Spring boot可以让你不用或者只需要很少的配置就可以让项目快速运行,说的就是使用代码注解来取代xml配置。其实从Spring3开始就已经提供java配置方式,使用java配置方式可以更好的理解你配置的Bean,如今Spring4更是推荐使用java配置方式,java配置方式可以完全替代xml配置,下面看两个最基本的注解
- @Configuration 和 @Bean
Spring的Java配置方式时通过@Configuration和@Bean来实现的- @configuration作用与类上,相当于一个xml配置文件
- @Bean作用与方法上,相当于xml中的
- 例子
- 这是一个简单模拟从数据库取User数据的Dao类(注意代码,它没有使用过任何注解,也就是说UserDao目前没有交给Spring容器管理)
1 | public class UserDao { |
这是一个常见的service,通过注入UserDao,使用UserDao的方法获取用户数据
1 |
|
从这里就开始和Spring不一样了,这个类使用了两个新的注解,其中@Configuration表明该类相当于Spring的一个xml配置文件,@Bean将一开始的UserDao配置给Spring管理
1 | // 通过注解来表明该类是一个Spring的配置,相当于一个xml文件 |
接下来就时获取Spring容器,从容器中拿到UserService,并调用其获取用户数据的方法,代码如下:
1 | public class Test { |
Spring boot注解
SpringBootApplication
是Spring boot项目的核心注解,主要目的是开启自动配置。后续详解原理。
@RestController
该注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都是以json格式输出。