使用SpringBoot搭建小型專案,整合mybatis,redis,swagger2,並部署在外部容器中。
一 簡介
初次接觸springboot,最直觀的感受是搭建專案幾乎不需要任何配置檔案,自帶Tomcat容器,節省了很多開發和部署時間,專案也變得更加精簡。
SpringBoot主要特性:
1 spring Boot Starter:它將常用的依賴分組進行了整合,將其合併到一個依賴中,這樣就可以一次性新增到專案的Maven或Gradle構建中;
2 自動配置:Spring Boot 的自動配置特性利用了Spring4對條件化配置的支援,合理的推測應用所需的bean並自動化配置他們;
3 命令列介面 : Spring Boot的CLI發揮了Groovy程式語言的優勢,並結合自動配置進一步簡化Spring應用的開發;
4 Actuator: 它為Spring Boot應用添加了一定的管理特性
下面簡單介紹如何建立springboot專案。
二 執行環境
jdk1.8
tomcat8
maven4.0
三 搭建springboot專案
3.1 建立maven專案
首先建立一個maven專案,如何建立maven專案這裡不多介紹,網上有很多教程。
專案結構如下圖
3.2 在pom檔案中加入springboot相關依賴
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>
首先在pom中新增一個parent專案,我們讓專案的Maven構建基於Spring Boot starter parent,這樣的話,我們就能受益於Maven的依賴管理功能,對於專案中的很多依賴,就沒有必要明確宣告版本號了,因為版本號會從parent中繼承得到。
這是本次專案中所用到的依賴和外掛,實際運用中不需要的依賴可自行去掉。<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> --> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <!--常用庫依賴--> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version> </dependency> <!--mybatis依賴 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--阿里 FastJson依賴--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.44</version> </dependency> <!--阿里 Druid Spring Boot Starter依賴--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.6</version> </dependency> <!--程式碼生成器依賴--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> <scope>test</scope> </dependency> <!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.2.2</version> </dependency> <!-- Redis 相關依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- json --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3.1</version> </dependency> <!-- 上傳元件包 --> <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> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>aliyun-repos</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>aliyun-plugin</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories>
<modelVersion>4.0.0</modelVersion>
<groupId>myBootProject</groupId>
<artifactId>myBootProject</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>myBootProject Maven Webapp</name>
<url>http://maven.apache.org</url>
pom頭部 將packageing標籤中的war改為jar
3.3 建立Spring Boot啟動類 Application
@SpringBootApplication
public class Application extends SpringBootServletInitializer{
/* @Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
builder.sources(Application.class);
return super.configure(builder);
}*/
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@springBootApplication 註解相當於(預設屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan。由於這些註解一般都是一起使用,spring boot提供了一個統一的註解@SpringBootApplication。
下面分別描述這三個註解的作用
@Configuration:標註當前類為spring的配置檔案,通常與@bean註解一起使用,相當於我們以前的xml配置檔案。
@EnableAutoConfiguration:自動化配置註解,能夠自動配置spring應用上下文,試圖猜測和配置你想要的bean類。自動配置被設計用來和“Starters”一起更好的工作,但這兩個概念並不直接相關。您可以自由挑選starter依賴項以外的jar包,springboot仍將盡力自動配置您的應用程式。
@ComponentScan:自動掃描指定包下的全部標有@Component的類,並註冊成bean,當然包括@Component下的子註解@Service,@Repository,@Controller。
到目前為止一個簡單springboot專案已經完成,啟動Application類,便可以執行專案。
四 整合mybatis和Redis
4.1 加入mybatis和redis相關依賴
<!--mybatis依賴 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Redis 相關依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
4.2 建立application.yml配置檔案
檔案要放在resource的根目錄下
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://******:3306/**?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: **
initialize: true
redis:
host: ******
port: 6379
password: ***
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 10000
mybatis:
mapper-locations: classpath*:mapper/*Mapper.xml
type-aliases-package: com.gcx.api.model
yml和properties都可作為配置檔案,properties配置是以鍵值對的形式儲存資料,yml則更像是一種JSON格式。yml的層次感更強。具體使用哪種根據個人喜好。
yml注意事項:yml不能使用tab作為空位符,只能用空格鍵,冒號後面的空格位數要統一,大小寫敏感。
本專案將mybatis的mapper.xml放在了resource下的mapper檔案下
配置檔案中配置了mybati和redis的資料來源,以及mybatis的對映路徑。專案啟動時會載入改配置檔案,從而建立對應上下文。
4.3 新增@MapperScan註解
在Application類上新增此註解
@SpringBootApplication
@MapperScan("com.gcx.api.dao")
public class Application extends SpringBootServletInitializer{
/* @Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
builder.sources(Application.class);
return super.configure(builder);
}*/
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
該註解的作用是將mapper類交由spring管理,在需要的時候建立對應的mapper例項,相當於在每個mapper類上加入@Mapper註解。
4.4 建立redis工具類
package com.gcx.api.common.redis;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import com.gcx.gcxCommon.model.User;
import com.google.gson.Gson;
/**
*<p>Title:CacheUtil</p>
*<p>Description:redis操作模板</p>
*<p>Company:gcx</p>
*<p>Author:zhanglin</p>
*<p>Date:2017年6月21日</p>
*/
@Component("CacheUtil")
public class CacheUtil {
@Autowired
private StringRedisTemplate redisTemplate;//redis操作模板
public void put(String key, String value) {
if (key==null || "".equals(key)) {
return;
}
redisTemplate.opsForHash().put(key, key, value);
}
public void put(String key, Object value) {
if (key==null || "".equals(key)) {
return;
}
redisTemplate.opsForHash().put(key, key, new Gson().toJson(value));
redisTemplate.expire(key, 6000, TimeUnit.SECONDS);
}
public <T> T get(String key, Class<T> className) {
Object obj = redisTemplate.opsForHash().get(key, key);
if(obj == null){
return null;
}
redisTemplate.expire(key, 6000, TimeUnit.SECONDS);
return new Gson().fromJson(""+obj, className);
}
public String get(String key) {
Object obj = redisTemplate.opsForHash().get(key, key);
if(obj == null){
return null;
}else{
return String.valueOf(obj);
}
}
//============================String操作=================================
public void putString(String key,String value){
redisTemplate.opsForValue().set(key, value, 1000, TimeUnit.SECONDS);
}
public <T> User getString(String key,Class<T> className){
String jsonStr = redisTemplate.opsForValue().get(key);
JSONObject jsonobject = JSONObject.parseObject(jsonStr);
User user= (User)JSONObject.toJavaObject(jsonobject, className);
return user;
}
public void deleteString(String key){
if(key!=null)
redisTemplate.delete(key);
}
}
至此該專案已成功整合mybatis和redis,如需其他擴充套件,springboot也提供了對應的介面,這裡暫不介紹。
五 整合swagger2
5.1 簡介
Swagger 是一款RESTFUL介面的文件線上自動生成+功能測試功能軟體。
Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法,引數和模型緊密整合到伺服器端的程式碼,允許API來始終保持同步。Swagger 讓部署管理和使用功能強大的API從未如此簡單。
5.2 新增swagger2相關依賴
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
5.3 建立SwaggerConfig類
package com.gcx.api.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
*<p>Title:SwaggerConfig</p>
*<p>Description:Swagger文件 訪問地址:http://localhost:埠號/專案名/swagger-ui.html</p>
*<p>Company:gcx</p>
*<p>Author:zhanglin</p>
*<p>Date:2018年2月1日</p>
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.gcx.api.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger2 基於 RestFul的 APIs")
.description("")
.termsOfServiceUrl("")
.contact("Change")
.version("1.0")
.build();
}
}
如上程式碼所示,通過@Configuration
註解,讓Spring來載入該類配置。再通過@EnableSwagger2
註解來啟用Swagger2。
再通過createRestApi
函式建立Docket
的Bean之後,apiInfo()
用來建立該Api的基本資訊(這些基本資訊會展現在文件頁面中)。select()
函式返回一個ApiSelectorBuilder
例項用來控制哪些介面暴露給Swagger來展現,本例採用指定掃描的包路徑來定義,Swagger會掃描該包下所有Controller定義的API,併產生文件內容(除了被@ApiIgnore
指定的請求)。
5.4 在controller層和實體類中使用swagger2註解
package com.gcx.api.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gcx.api.common.base.BaseController;
import com.gcx.api.common.exception.ParameterException;
import com.gcx.api.common.util.MyResult;
import com.gcx.api.common.util.StringUtils;
import com.gcx.api.model.UserGroup;
import com.gcx.api.service.UserGroupService;
/**
* @author zhanglin
* @version 建立時間:2018-01-10 12:00:06
*/
@RestController
@Api(value="userGroup",description="群組")
@RequestMapping("/userGroup")
@Validated
class UserGroupController extends BaseController {
@Autowired
UserGroupService userGroupService;
// 查詢所有記錄 分頁預設每頁為10條記錄,查詢全部pageSize傳-1
@GetMapping
@ApiOperation(value = "列表",notes="外網呼叫此介面時,稽核狀態傳3")
MyResult list(@Valid UserGroup record,BindingResult br) throws Exception{
if(br.hasErrors()){
for (ObjectError error : br.getAllErrors()) {
System.out.println(error.getDefaultMessage());
}
return MyResult.ok(br.getAllErrors().get(0).getDefaultMessage());
}
MyResult result=userGroupService.findAllRecords(record);
return result;
}
// 新增記錄
@ApiOperation(value = "新增")
@PostMapping
MyResult add(@RequestBody UserGroup record,HttpServletRequest request) throws Exception{
record.setCreateTime(getNowTime());
record.setCreateUser(getUserId(request));
MyResult result = userGroupService.addRecord(record);
return result;
}
// 刪除記錄 id
@ApiOperation(value = "刪除")
@DeleteMapping("/{tid}")
MyResult delete(@PathVariable("tid")String tid) throws Exception{
if(StringUtils.isEmpty(tid))
throw new ParameterException("引數tid不能為空,你傳的引數是:"+tid);
MyResult result = userGroupService.delRecord(tid);
return result;
}
// 修改記錄 id 要修改的屬性
@ApiOperation(value = "修改")
@PutMapping
MyResult update(@RequestBody UserGroup record,HttpServletRequest request) throws Exception{
if(StringUtils.isEmpty(record.getTid()))
throw new ParameterException("引數tid不能為空,你傳的引數是:"+record.getTid());
if(record.getAuditStatus()==2){
record.setUpdateTime(getNowTime());
record.setUpdateUser(getUserName(request));
}
MyResult result = userGroupService.updateRecord(record);
return result;
}
// 根據ID查詢詳情 id
@ApiOperation(value = "查詢詳情")
@GetMapping("/{tid}")
MyResult get(@PathVariable("tid")String tid) throws Exception{
if(StringUtils.isEmpty(tid))
throw new ParameterException("引數tid不能為空,你傳的引數是:"+tid);
MyResult result = userGroupService.findById(tid);
return result;
}
}
@ApiModel(value="UserGroup",description="群組實體類")
public class UserGroup extends BaseEntity {
@ApiModelProperty(value="群組ID")
private String groupId;//群組ID
@NotBlank(message="使用者ID不能為空")
@ApiModelProperty(value="使用者ID")
private String userId;//使用者ID
@NotBlank(message="群名稱不能為空")
@ApiModelProperty(value="群名稱")
private String groupName;//群名稱
}
swagger2常用註解說明
- @Api()用於類;表示標識這個類是swagger的資源
- @ApiOperation()用於方法;
表示一個http請求的操作
- @ApiParam()用於方法,引數,欄位說明;
表示對引數的新增元資料(說明或是否必填等)
- @ApiModel()用於類
表示對類進行說明,用於引數用實體類接收
- @ApiModelProperty()用於方法,欄位
表示對model屬性的說明或者資料操作更改
- @ApiIgnore()用於類,方法,方法引數
表示這個方法或者類被忽略
- @ApiImplicitParam() 用於方法
表示單獨的請求引數
- @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam
5.5 效果展示
訪問路徑 http://localhost:8080/swagger-ui.html#/
至此所有整合完成
啟動Application類
介面測試
點選Try it out 測試介面
測試結果
介面訪問成功。
六 在外部容器中部署springboot專案
6.1 將pom檔案中的jar改為war
<modelVersion>4.0.0</modelVersion>
<groupId>myBootProject</groupId>
<artifactId>myBootProject</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>myBootProject Maven Webapp</name>
<url>http://maven.apache.org</url>
6.2 移除springboot自帶容器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
6.3 加入servlet依賴
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
6.4 修改Application類
@SpringBootApplication
@MapperScan("com.gcx.api.dao")
public class Application extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
builder.sources(Application.class);
return super.configure(builder);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在Application類中加入configure方法
至此便可將專案部署到外部容器中
外部容器訪問介面時要加上專案名稱
若需要完整專案請加群 499950895
相關推薦
使用SpringBoot搭建小型專案,整合mybatis,redis,swagger2,並部署在外部容器中。
一 簡介 初次接觸springboot,最直觀的感受是搭建專案幾乎不需要任何配置檔案,自帶Tomcat容器,節省了很多開發和部署時間,專案也變得更加精簡。 SpringBoot主要特性: 1 spring Boot Starter:它將常用的依賴分組進行了整合,將其合
Eclipse搭建SpringBoot程式入門 (整合mybatis)
目錄 Springboot 理解: spring boot其實不是什麼新的框架,它預設配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了許多優秀框架,它能夠簡單、快速、方便為我們搭建好框架。 接下來進入搭建環節
【SpringBoot探索五】SpringBoot專案整合Mybatis框架之使用Mybatis Plus外掛
Mybatis Plus是一款非常優秀的Mybatis擴充套件外掛,該開源專案是由國人發起的。使用該外掛可以簡化我們的開發,它有很多優良的特性,比如通用CRUD操作,支援ActiveRecord,內建分頁外掛等等。 1.新增pom依賴 <!--
SpringBoot 入門教程:整合mybatis,redis
SrpingBoot相較於傳統的專案具有配置簡單,能快速進行開發的特點,花更少的時間在各類配置檔案上,更多時間在具體業務邏輯上。 SPringBoot採用純註解方式進行配置,不喜歡xml配置的同學得仔細看了。 首先需要構建SpringBoot專案,除了傳統的自己構建好修改
SpringBoot專案整合mybatis打包為jar執行時setTypeAliasesPackage無效解決
在Bean注入時新增一行程式碼 VFS.addImplClass(SpringBootVFS.class);完整示例:@Configuration public class MybatisConfig
SpringBoot(十)-- 整合MyBatis
con data pac erl div ini 文件 true mave 1.pom.xml 配置maven依賴 <dependency> <groupId>org.mybatis.spring.boot</g
SpringBoot Maven多模組整合MyBatis 打包jar
最近公司開始新的專案,框架選定為SpringBoot+Mybatis,本篇主要記錄了在IDEA中搭建SpringBoot多模組專案的過程。 原始碼:https://github.com/12641561/summer summer-api summer-common summer-
SpringBoot搭建SSM專案
最終目錄結構 1.建立專案 2. pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs
SpringBoot--04.SpringBoot2.0整合mybatis
開發環境:jdk1.8 tomcat8.5 mybatis springboot2.0 maven工程 專案結構: 1、pom.xml引入依賴 <?xml version="1.0" encoding="UTF-8"?> <project xmln
基於SpringBoot搭建SSM專案
在idea中我們先建立好maven專案,匯入好依賴包 pom.xml如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=
十四、SpringBoot之資料訪問整合MyBatis
pom.xml <!--引入mybatis--> <dependency> <groupId>org.myba
使用idea搭建SpringBoot+Spring jpa專案(實現獲取資料庫資料顯示在頁面中)
搭建SpringBoot準備 javaweb基礎 idea使用基礎 maven使用基礎 開始搭建SpringBoot專案 建立springboot 設定Group、Artifact、Packaging 選擇web及SpringBoot版本 配置app
Java專案整合Mybatis+Sqlite 非Spring
由於博主最近開發應用,需要儲存資料,於是想到了用sqlite。 但是用Java 提供的方法來操作資料庫,實在是有點繁瑣,所以博主就百度了一下Mybatis整合Sqlite,但是遇到了一個大坑,所以以此記錄! 重點記錄:sqlite驅動包的版本號 當前使用的是3.7.2的,博主剛開始使
IDEA下用springboot搭建web專案
SpringBoot的具體介紹可以參看其他網上介紹,這裡就不多說了,就這幾天的學習,個人理解,簡而言之: (1)它是spring的升級版,Spring容器能做到的事情,它都能做到,而且更簡便,從配置形式上來說,SpringBoot完全拋棄了繁瑣的XML檔案配置方式,而是替代性地用註解方式來實現,雖然本質
springBoot 搭建web專案(前後端分離,附專案原始碼地址)
springBoot 搭建web專案(前後端分離,附專案原始碼地址) 概述 該專案包含springBoot-example-ui 和 springBoot-example,分別為前端與後端,前後端分離,利用ajax互動。 springBoot-exam
springboot的maven專案整合log4j
我的專案使用的是springboot的1.4.1的版本,在1.4以上的版本中,需要整合log4j2,用log4j的話會報錯 過程如下: 1、 由於springboot本身已經集成了日誌相關的log4j或slf4j依賴,我們需要在pom.xml中先去掉這些依賴,再新增lo
SSM專案整合mybatis-plus
1.刪除原先專案中的mybatis和mybatis-plus兩個包 2.匯入mybatis-plus包 <dependency> <groupId>com.baomid
Springboot 整合mybatis並用Logback並列印sql
resources下增加 logback-spring.xml配置檔案 <?xml version="1.0" encoding="UTF-8" ?> <!-- logback整合日誌--> <configuration scan="true"
Spring boot整合Mybatis Redis Shiro
/** * Created by yangqj on 2017/4/23. */ @Configuration public class ShiroConfig { @Autowired(required = false) private ResourcesService resource
用SpringBoot搭建聚合專案實戰記錄
建立聚合父工程 File - New - Project - Maven - [Next] - GroupId(格式:cn.hnlp2es.parent),ArtifactId(格式:hnlp2es-parent) - 一路Next 說明:父工程主要是