Spring Boot入门
文章目录
1.简介
Spring Boot是一个简化Spring开发的框架。用来监护spring应用开发,约定大于配置,去繁就简,just run 就能创建一个独立的,产品级的应用。
我们在使用Spring Boot时只需要配置相应的Spring Boot就可以用所有的Spring组件,简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。
2.优点
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器,应用无需打成WAR包
- startters自动依赖于版本控制
- 大量的自动配置 , 简化开发 , 也可以修改默认值
- 无需配置XML , 无代码生成 , 开箱即用
- 与云计算的天然集成
3.单体应用于微服务
单体应用是把所有的应用模块都写在一个应用中,导致项目越写越大,模块之间的耦合度也会越来越高。微服务是一种架构风格,用微服务可以将应用的模块单独部署,对不同的模块进行不同的管理操作,不同的模块生成小型服务,每个功能元素最后都可以成为一个可以独立替换、独立升级的功能单元,各个小型服务之间通过http进行通信。
4.Spring Boot的核心
微服务
使用Spring Boot可以生成独立的微服务功能单元
自动配置
针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
起步依赖
告诉Spring Boot需要什么功能,它就能引入需要的库
命令行界面
这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
Actuator
让你能够深入运行中的Spring Boot应用程序。
5.配置
目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQUlIbhe-1571293376581)(C:\Users\leike\Documents\我的md笔记\springboot图片\目录结构.png)]
pom配置文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
</dependencies>
6.Srping Boot常用注解
-
@SpringBootApplication
@SpringBootApplication是一个复合注解,包括@ComponentScan,@SpringBootConfiguration,@EnableAutoConfiguration
- @SpringBootConfiguration
- @EnableAutoConfiguration的作用启动自动的配置。
- @EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web,来判断你的项目是否需要添加了webmvc和tomcat,就会自动的帮你配置web项目中所需要的默认配置。在下面博客会具体分析这个注解,快速入门的demo实际没有用到该注解。
- @ComponentScan,扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。是以前的context:component-scan(以前使用在xml中使用的标签,用来扫描包配置的平行支持)。所以本demo中的User为何会被spring容器管理
-
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@esponsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@Responsebody后,会直接返回json数据。该注解一般会配合@RequestMapping一起使用
- @Controller
用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping
- @RestController
用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集。
- @Service
一般用于修饰service层的组件
- @Repository
使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
- @Bean
用@Bean标注方法等价于XML中配置的bean。
- @Value
注入Spring boot application.properties配置的属性的值。
7.Spring Boot使用
1.Spring Boot 支持JSP
<!-- servlet依赖. -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat的支持.-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K1m7GwTG-1571293376582)(C:\Users\leike\Documents\我的md笔记\springboot图片\jsp配置.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47cej4LL-1571293376583)(C:\Users\leike\Documents\我的md笔记\springboot图片\jsp目录.png)]
2.集成myBatis
-
第一步 : 修改 pom.xml 增加对 MySql和 MyBatis 的支持
<!-- mybatis的支持 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!-- mysql的支持 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.48</version> </dependency>
-
增加数据库链接参数