springboot
简介:
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
入门:
1:maven的环境修改:
a:在settings和other setting中修改maven的配置,修改为我们自己的;
b:在maven的setting的配置文件中:修改默认的jdk版本,当然镜像根据自己的修改
2:hello:
- 2.1:创建一个parent工程
- 2.2:创建hello的子模块:
在parent的pom做springboot的版本的限制:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<!--type scope -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 2.3:创建一个controller:
以前怎么写就怎么写,只是把controller换成–》RestController - 2.4:创建一个App的类:
@SpringBootApplication// 把这个项目标识为springboot的项目
public class App {
/**
* 这里是springboot项目的入口:启动类
* @param args
*/
public static void main(String[] args) {
//SpringApplication.run(App.class,args);
SpringApplication.run(App.class);
}
}
- 2.5:运行这个main方法,浏览器访问:默认端口是8080
3:springboot:
是什么:就是一大堆的maven的集合;
为什么用他:简化spring环境的配置,搭建和开发和部署和监控。
springboot很适合微服务。。
4:热部署:
在当前模块pom:
<!--热部署依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,可能devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
当需要重新启动的时候:ctrl+F9
5:返回json:
以前怎么写就怎么写;
但是可以把以前的controller+ResponseBody换成RestController:
区别:
RestController–>加在类上的注解
‘*’ ===》相当于在类上加了Controller和这个类所有的方法上都加了ResponseBody
6:返回jsp的试图:
- 6.1:创建一个maven的web工程
- 6.2:导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热部署依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<!--tomcat支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
6.3:插件:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.5.RELEASE</version>
<configuration>
<!--fork : 如果没有该项配置,可能devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
</plugin>
- 6.4:controller:
和以前一样 - 6.5:配置文件:
在工程的classpath下,创建一个application.properties:
# 前缀
spring.mvc.view.prefix= /WEB-INF/views/
# 后缀
spring.mvc.view.suffix= .jsp - 6.6:启动的时候:
先创建启动类:
不能直接运行main方法,需要使用插件启动
7:项目的运行方式:
-
7.1非web项目:
以jar的方式运行:
首先得打包成jar:
mvn clean ==>删除target下的内容;
mvn package ==>打包jar war,打包到target下
mvn install ==》安装:把jar安装到你本地的仓库要打springboot的jar包的时候,要在pom中安装一个插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,可能devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 7.2:web项目:
也要在pom中配置插件;
app的启动类要修改:
@SpringBootApplication
public class App extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(App.class);
}
public static void main(String[] args) {
SpringApplication.run(App.class);
}
}
在jsp页面:<%@ page isELIgnored=“false” %>
在web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Archetype Created Web Application</display-name>
<jsp-config>
<jsp-property-group>
<url-pattern>
</url-pattern>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
</web-app>
8:springboot 的测试:
- 8.1:要导入test依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
- 8.2:java代码该怎么写就怎么写;app启动类要写;
- 8.3:再写测试代码:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)// 就是你springboot的启动类
public class IUserServiceTest {
}
9:三层架构:
jdbcTemplate和jpa使用方式和以前一样;
mybatis:
pom文件的依赖导入;
ssm和以前写代码一样:
app启动类:扫描mapper接口和映射:
@SpringBootApplication
@MapperScan("cn.itsource.springboot.mapper") //同时扫mapper接口和mapperxml映射
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class);
}
}
- application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/sb
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#mybatis的别名的配置
mybatis:
type-aliases-package: cn.itsource.springboot.domain
server:
port: 91
- 分页插件:
使用注解方式配合一个bean:
package cn.itsource.springboot.config;
import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
/**
* <bean id="" class="">
* <property name="offsetAsPageNum" value="true"></property>
* </bean>
*/
@Configuration
public class MyBatisConfiguration {
@Bean
public PageHelper pageHelper() {
System.out.println("MyBatisConfiguration.pageHelper()");
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}
分页插件的使用:
和以前一样,在service使用:
PageHelper.startPage(1,1);