why
1.EJB—>Spring
随着java的流行,EJB(Enterprise Java Beans)作为Java企业级应用开发渐入人们的视线,但是由于其设计的复杂性,所以在J2EE架构中的表现一直不是很好,正当Java开发者无法忍受EJB的臃肿不堪时,spring应运而生。
2.Spring—>Springboot
Spring是通过XML来管理Bean的,但是随着业务的不断增加,XML文件变得臃肿不堪,难以阅读和管理;同时XML文件很难排查错误配置。所以Spring框架不断革新,其核心思想:“约定大于配置”。
此时,Springboot被抽象出来了,它并不是代替Spring的,而是与Spring紧密结合,用来提升Spring开发者体验的工具;它集成了大量常用的第三方库的配置,实现开箱即用。
what
官方介绍
Spring Boot makes it easy to create stand-alone, production-grade Spring-based Applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
百度百科
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
运行原理
how
pom
---设置springboot的parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
---导入springboot的web支持
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
---添加springboot插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
启动类
@Controller
@SpringBootApplication
@Configuration
public class HelloApplication {
@RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello world!";
}
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
看到如下信息就说明启动成功了:
INFO 6188 — [ main] c.i.springboot.demo.HelloApplication : Started HelloApplication in 3.281 seconds (JVM running for 3.601)
总结
这样一个简单的web应用就搭建完成了,对比不用springboot的,明显少了太多的配置,因为springboot“约定大于配置”,可以帮助我们快速搭建一个应用,从而让程序员将跟多的关注点放到业务上,而非其他。但是我们也不能仅仅只关注表面,应该对它的原理有所深入。