Spring Boot核心功能
- 独立运行的Spring项目:可以以jar包形式独立运行,通过java -jar xx.jar即可运行
- 内嵌Servlet容器:可以选择内嵌Tomcat、Jetty等
- 提供starter简化maven配置:一个maven项目,使用了spring-boot-starter-web时,会自动加载Spring Boot的依赖包
- 自动配置Spring:Spring Boot会根据在类路径中的jar包、类,为jar包中的类自动配置Bean
- 准生产的应用监控:提供基于http、ssh、telnet对运行时的项目进行监控
- 无代码生成和xml配置:主要通过条件注解来实现
目录
使用STS创建好项目
Spring Boot的基础结构共三个文件
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序
pom.xml 文件配置相关
spring-boot-starter-parent :父级依赖,SpringBoot项目的标志。里面封装了很多jar的版本
spring-boot-starter-web :对web项目的支持,其中包含了SpringMVC和tomcat
spring-boot-starter-data-jpa :对JPA的支持,其中包含了常用的SpringData和Hibernate,没有Mybatis哦
spring-boot-starter-tomcat :使用tomcat作为Servlet容器
spring-boot-starter-test :对常用测试框架的支持,如JUnit
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>SpringBoot-Demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringBoot-Demo</name>
<description>Demo project for Spring Boot</description>
<!-- 添加 spring boot的父级依赖,它是SpringBoot项目的标志, spring-boot-starter-parent 它是一个特殊的starter,提供了很多相关的Maven依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 添加web依赖 ,包含spring和springmvc等 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- spring-boot-starter-tomcat是Spring Boot默认就会配置的,将其设置为provided是在打包时会将该包(依赖)排除,
因为要放到独立的tomcat中运行,Spring Boot内嵌的Tomcat是不需要用到的 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 对常用测试框架的支持,如JUnit -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 因为SpringBoot内嵌的tomcat不支持jsp页面,同时SpringBoot也不推荐用jsp -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- jsp标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- oracle相关 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
</dependencies>
<build>
<!-- SpringBoot 编译插件 -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<!-- 私服配置 -->
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.8.159:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
application.properties文件配置
# 配置tomcat端口号
server.port=8080
# 配置SpringMVC视图解析器
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# 配置连接池,默认使用的是tomcat的连接池,但实际很少用tomcat的连接池
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=liuq
spring.datasource.password=root
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
启动测试
先设置下SpringBootDemo21Application 类
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@SpringBootApplication
public class SpringBootDemo21Application {
@RequestMapping("/")
public String index() {
return "index";
}
@RequestMapping("hello")
@ResponseBody
public String helloWorld() {
return "Hello SpringBoot !";
}
public static void main(String[] args) {
SpringApplication.run(SpringBootDemo21Application.class, args);
}
}
直接在浏览器输入http://localhost:8080/hello 成功返回。
另外可以在其它包下创建相关类访问
新建MainController.java 类
package com.example.demo.application;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author:liuq
* @date:2018年11月21日
*/
//@RestController注解 等价于 @Controller+@ResponseBody 将返回值已json形式返回
@RestController
public class MainController {
@GetMapping("/testHello")
public String login(){
return "hello liuq";
}
}
这样直接在浏览器输入http://localhost:8080/testHello 返回如下: