1.SpringBoot概述
1.1 简介
- 使用Spring boot ,可以轻松的创建独立运行的程序,非常容易构建独立的服务组件,是实现分布式架构、微服务架构利器。
- Spring boot简化了第三方包的引用,通过提供的starter,简化了依赖包的配置
1.2 优点
- 轻松创建独立的Spring应用程序
- 内嵌Tomcat、jetty等web容器,不需要部署WAR文件
- 提供一系列的“starter” 来简化的Maven配置,不需要添加很多依赖(查看依赖结构命令:mvn dependency:tree)
- 开箱即用,尽可能自动配置Spring
2.入门项目创建
步骤:
- 提前配置好maven
- IDEA创建一个maven war项目(一般都使用jar,因为spring是用于服务,不建议与jsp使用)
- 在pom.xml添加spring-boot-starter-web依赖(重要)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
spring-boot-starter-parent作用
在pom.xml中引入spring-boot-start-parent,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。
spring-boot-starter-web作用
springweb 核心组件
4. 写一个控制器如下,然后写一个main方法(这样只能跑一个控制器,推荐单独写App.jave,批量启动控制器),把程序跑起来
package com.gyf.web.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController//相当于声明Controller - 提共restful 风格
@EnableAutoConfiguration//自动配置,不需要写spring的配置文件
class HelloController {
@RequestMapping("/hello")//映射路径
@ResponseBody//响应体
public String hello() {
return "Hello World";
}
public static void main(String[] args) {
//启动程序
SpringApplication.run(HelloController.class, args);
}
}
- 在浏览器中访问http://localhost:8080/hello
3. SpringBoot的批量启动控制器方式(推荐)
步骤:
其他的和入门项目一样,另外创建一个App类在App类中配置EnableAutoConfiguration和组件扫描ComponentScan,然后使用SpringApplication启动程序,这样就可以访问多个Controller了
@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.gyf"})//注解扫描,可以扫描多个包
public class App
{
public static void main( String[] args ) {
SpringApplication.run(App.class,args);
}
}
4.SpringBoot新填的注解
- @EnableAutoConfiguration 自动配置,相当于写了spring的配置文件,写在启动类App上
- @ComponentScan(basePackages = {“com.gyf”}) 注解扫描,可以扫描多个包
- @RestController 声明Rest风格的控制器
- @RequestMapping(“hello/{name}”) @RestController声明了参数需要按照rest的风格在访问路径里传递
- @MapperScan(basePackages = “com.gyf”)//扫描Mapper
说明:@RestController”和”@RequestMapping”由 Spring MVC 提供,用来创建 REST 服务(参数传递方式)
5. 静态资源(js,css,imgs)的访问
存放规则:
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。
Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources(右键选择标记为资源文件夹)
/META-INF/resources
注:Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性。
6. 整合其他
- log4j
- 多数据源
- 多事务
- AOP统一管理日志
- mybatis
- freemarker
7. application.properties和application.yml
- 两者作用相同,只是写法不同,.properties记住不要有空格
- 修改端口号和访问项目名的有无,以application.properties为例
server.port=8888
server.context-path=/test
8. 打包部署
前提条件:
pom.xml要配置打包插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.gyf.app.App</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 先打成war包或者jar包
- 在cmd里使用java -jar test3-0.0.1-SNAPSHOT.jar 运行即可
易错点:静态资源打包时,pom.xml里还需配置以下
<!--打包时,带上资源文件-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
总结
学习了SpringBoot,顿时感觉神清气爽,省去了以前的SSM的大量配置文件和过多的Maven依赖,使项目开发的更快,只需配置pom.xml文件即可。很容易搭建项目,得益于springboot强大的注解功能。建议不要使用jsp做页面展示,影响了springboot的性能,暂时推荐使用freemark模板引擎,可以在Application.properties里加一行spring.freemarker.request-context-attribute=request,方便前端取项目名。