springboot 基础
springBoot概述
什么是spring boot
springBoot 使用默认优于配置的理念让你的项目快速的运行起来,使用springBoot很容易创建一个独立运行(运行jar,内嵌servlet容器),准生产级别的基于Spring的项目,使用spring boot 你可以不用或者只需要很少的spring的配置。
独立运行的spring项目
spring boot可以以jar包的形式独立的运行,运行一个spring boot 项目只需要java -jar xx.jar
内嵌的servlet的容器
spring boot 可选择内嵌Tomcat,Jetty 或者Undertow,这样我们无需以jar包的形式部署项目。
提供starter的简化的配置
spring 提供一系列的 start pom 来简化maven的依赖加载,例如当你使用spring-boot-starter-web 时,会自动的加载许多的默认包。
自动配置spring
spring boot 会根据在类路径里面的jar包,类。为jar包里面的类制动配置bean,这样会极大的减少我们要使用的配置。当然springBoot只是考虑了大多数的开发的场景,并不是所用的场景,若在实际的开发中我们需要自动配置bean,二spring boot没有提供支持,则可以自定义制动配置。
准生产的应用的监控
spring boot 提供基于http,ssh, telnet 对运行时的项目进行监控。
无代码生成和xml
spring boot 的神奇不是借助于代码生成来实现的,而是通过条件注解来实现的,这是spring4.x提供的新特效。
spring 4.x 提倡使用java 配置和注解相结合的方式,而spring boot 不需要任何xml配置就可以实现spring的所用的配置。
springboot 的优缺点
优点:
快速构建项目
对主流开发框架的无配置的集成
项目可独立运行,无需外部依赖servlet
提供运行时的应用的监控
极大地提高了开发,部署的效率
与云计算的天然的集成
缺点:
书籍文档太少啦
springBoot 的快速搭建
方式一:https://start.spring.io/
方式二:IntelliJ IDEA
Maven项目的构建
更改pom文件
<?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.renrenche.business</groupId>
<artifactId>matadata_index</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<spring.version>1.5.9.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.1.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<!--excel-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
<!-- <version>3.16</version>-->
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<!--上传excel工具类-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<distributionManagement>
<repository>
<id>renrenche-repo</id>
<name>releases</name>
<url>http://repo.shanyishanmei.com/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>renrenche-repo</id>
<name>snapshots</name>
<url>http://repo.shanyishanmei.com/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<build>
<finalName>metadataIndex</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.version}</version>
<executions>
<execution>
<id>default</id>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.renrenche.business.index.Boot</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
简单测试
添加测试控制器
package com.renrenche.springboot.study.springbootstudy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication//1
public class SpringbootStudyApplication {
/**
* 模板下载
*/
@GetMapping(value = "/index")
public String demo() {
return "hello";
}
public static void main(String[] args) {//2
SpringApplication.run(SpringbootStudyApplication.class, args);
}
}