SpringBoot(1) 入门 (第一章)
一,简介
Spring boot 来简化Spring应用的开发,约定大于配置,去繁从简,just run 就能创建一个独立,产品级别的应用。
背景:
J2EE笨重的开发,繁多的配置,低下的开发效率,复杂的部署流程,第三方技术集成困难。
解决:
“Spring全家桶” 时代。
Spring boot ---》 J2EE一站式解决方案。
Spring Cloud ---》分布式整体解决方案。
可参考官方资料:https://spring.io/ 和 http://spring.io/projects/spring-boot
Spring Boot 是什么?
Spring boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化spring应用的初始搭建以及开发过程。使用spring boot 搭建项目真的太简单,相比之前熟悉的ssm等。
该框架使用了特定的方式(继承starter,约定优先配置)来进行配置,从而使开发人员不再需要定义样板化的配置。
通过这种方式,Boot致力在蓬勃的快速开发领域(rapid application development)成为领导者。
Spring Boot 并不是一个框架,从根本上讲,它就是一些maven库的集合,maven或者gradle项目导入相应依赖即可使用Spring Boot,而且无需自行管理这些库的版本。
Spring Boot 就是一些写好了的mavne板块,我们在使用Spring 就不需要以传统的方式去使用。只需要用maven导入Spring Boot 相关的模块,就能完成一大堆操作。
简单的讲,它用Maven的方式简化封装了Spring应用的搭建开发。
特点:
1,创建独立Spring应用程序。
2,嵌入的tomcat,无需部署war文件。
3,简化maven配置
4,自动配置Spring
5,提供生成就绪功能,如指标,健康检查和外部配置
6,绝对没有代码生成并且对xml也没有配置要求
7,与云计算的天然集成
用我们通俗的话来描述:Spring Boot 使编程更简单,使配置更简单,使部署发布更简单,使监控更简单。
Spring Boot 就是为了简化Spring应用搭建,开发,部署,监控的开发工具。
Spring Boot 提供了那些功能?
无需手动管理依赖jar包的版本
Spring boot通过spring boot starter项目管理其提供的所有依赖的版本,当升级spring boot时,这些依赖的版本也会随之升级,个人无需指定版本号
但是也可以自定义版本号覆盖springboot的默认值。每个版本的boot都有对应的base spring version,不建议明确地指定spring版本。
Spring Boot 在org.springframework.boot 组下提供的一些starters
(1) spring-boot-starter
核心Spring Boot starter,包括自动配置支持,日志和YAML
(2) spring-boot-starter-actuator
生产准备的特性,用于帮你监控和管理应用
(3) spring-boot-starter-amqp
对"高级消息队列协议"的支持,通过 spring-rabbit 实现
(4) spring-boot-starter-aop
对面向切面编程的支持,包括 spring-aop 和AspectJ
(5) spring-boot-starter-mail
对 javax.mail 的支持
(6) spring-boot-starter-mobile
对 spring-mobile 的支持
(7) spring-boot-starter-redis
对REDIS键值数据存储的支持,包括 spring-redis
(8) spring-boot-starter-security
对 spring-security 的支持
(9) spring-boot-starter-test
对常用测试依赖的支持,包括JUnit, Hamcrest和Mockito,还有 spring-test 模块
(10) spring-boot-starter-thymeleaf
对Thymeleaf模板引擎的支持,包括和Spring的集成
(11) spring-boot-starter-web
对全栈web开发的支持,包括Tomcat和 spring-webmvc
(12) spring-boot-starter-websocket
对WebSocket开发的支持
(13) spring-boot-starter-remote-shell
添加远程 ssh shell支持
(14) spring-boot-starter-jetty
导入Jetty HTTP引擎(作为Tomcat的替代)
(15) spring-boot-starter-log4j
对Log4J日志系统的支持
(16) spring-boot-starter-logging
导入Spring Boot的默认日志系统(Logback)
(17)spring-boot-starter-tomcat
导入Spring Boot的默认HTTP引擎(Tomcat)
一张经典的图:(现在官网没有这张图了)
Build Anything :构建任何项目
Coordinate Angthing :项目协调
二,Hello World
你必须掌握以下内容
--Spring框架的应用
--熟悉的使用Maven进行项目的构建和依赖管理
--熟悉的使用 eclipse or IDEA
环境约束
--JDK1.8以上
--maven3.x
--Intellij IDEA 2017
--Spring Boot 1.5.9.RELEASE
1,创建maven项目
2,引入starters
1 <!-- SpringBoot所需依赖 --> 2 <parent> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-parent</artifactId> 5 <version>2.0.5.RELEASE</version> 6 </parent>
1 <!--spring-boot-starter-web依赖--> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-web</artifactId> 5 </dependency>
3,测试
1,创建主程序
传统开发的springweb项目:
1.启动tomcat
2.根据web.xml中配置信息初始化一个spring容器(applicationContext)
等配置文件。
3.做一些常规配置后根据扫描包路径扫描一些bean(mapper,service,controller)
启动springboot应用:
1.启动一个内置tomcat服务器
2.初始化一个spring容器
3.自动配置(SpringMVC),
扫描加了@SpringBootApplication类的当前包以及后生里面所有spring注解(@Repository,@service,@Controller),
并且将扫描到的类注入Spring管理
==帮我们简化了很多配置。
1 package indi.lwc.springboot1; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6 @SpringBootApplication //标识这是spring Boot程序 7 public class Springboot1Application { 8 9 public static void main(String[] args) { 10 SpringApplication.run(Springboot1Application.class, args); //启动springBoot程序 11 } 12 13 }
2,运行启动
3.Contrller类
1 package indi.lwc.springboot1.web; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.ResponseBody; 6 7 @Controller 8 public class HelloWorldController { 9 10 @RequestMapping("/hello") 11 @ResponseBody //加上 ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入Http response body 中,如异步获取则返回json数据。 12 private String hello(){ 13 System.out.println("hello"); 14 return "hello"; 15 } 16 17 18 19 20 }
4,打开你熟悉的谷歌浏览器输入URL: http://localhost:8080/hello
恭喜靓仔入门成功 !