SpringBoot项目从搭建到发布一条龙

前言

目前正在练手springboot+vue,因为很多步骤会遇到困难,当时查完资料解决,过一段时间就会忘记,所以决定建个系列记录下来。因为中间很多过程已经被其他大神写过,且这次开发经历仅供学习分享与讨论,就直接借鉴过来了,会附上原作者传送门。本次项目准备写文档临时起意,之前的步骤未作记录,比如部署linux虚拟机,利用mycat实现读写分离等,这个等项目需要用到的时候再加说明。好了现在让我们开始吧!

第二章 使用IDEA搭建一个简单的SpringBoot项目——初始化项目

前言

该篇文章质量很高,我利用作者教程一次搭建成功,直接复制过来

创建项目

2.选择“Spring Initializr”,点击next;(jdk1.8默认即可)

3.完善项目信息,组名可不做修改,项目名可做修改;最终建的项目名为:test,src->main->java下包名会是:com->example->test;点击next;

4.Web下勾选Spring Web Start,(网上创建springboot项目多是勾选Web选项,而较高版本的Springboot没有此选项,勾选Spring Web Start即可,2.1.8版本是Spring Web);Template Englines勾选Thymeleaf;SQL勾选:MySQL Driver,JDBC API 和 MyBatis Framework三项;点击next;

5.选择项目路径,点击finish;打开新的窗口;


6.刚创建好的项目目录结构

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210204142502112.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3llamlhbGlhbmd6aQ==,size_16,color_FFFFFF,t_70)

7.点击右侧的Maven,点击设置(扳手图标)进行项目Maven仓库的配置;

8.(1)选择本地Maven路径;(2)勾选配置文件后边的选项,然后修改为本地Maven的配置文件,它会根据配置文件直接找到本地仓库位置;

9.配置完后,如果没有自动导包,可以点击左上角重新导包按钮,或者呢个下载按钮,选择下载所有源文件和文档

10.在templates文件下新建index.html页面,作为启动的初始页面;

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>hello</title>
</head>
<body>
 你好!初学者,我是SpringBoot的简单启动页面!
</body>
</html>

11.在com.example.test下新建controller文件夹,在controller文件夹下建一个简单的helloController类;(Controller类要添加@Controller注解,项目启动时,SpringBoot会自动扫描加载Controller)

package com.example.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

 @RequestMapping("/index")
 public String sayHello(){
 return "index";
 }
}

12.在resources文件夹下application中先配置DataSource基本信息,application文件有两种文件格式,一种是以.properties为后缀,一种是以.yml为后缀的,两种配置方式略有差别,详情可参考这个网址:https://www.jb51.net/article/154115.htm;在这我是用.yml后缀的文件格式。右键application文件选择Refact,选择Rename,将后缀改为yml;

spring:
 datasource:
 name: test #数据库名
 url: jdbc:mysql://localhost:3306/test #url
 username: root #用户名
 password: 123456 #密码
 driver-class-name: com.mysql.jdbc.Driver #数据库链接驱动

13.运行项目启动类TestApplication.java

!可以发现上面有一个WARN警告,那是因为还没有配置编写MyBatis的相关文件,下面会进行详解;

2019-08-02 09:14:27.473 WARN 9120 --- [
main] o.m.s.mapper.ClassPathMapperScanner
: No MyBatis mapper was found in '[com.example.test]' package. Please check your configuration.

14.在浏览器中输入localhost:8080,回车显示初始的index界面;到这项目的初步搭建已经完成,下面可以下一些简单的业务逻辑,比如从数据库获取信息,登录之类的简单功能;

15.在进行下一步编写时,我们先来链接一下数据库;点击右侧的Database,点“加号”,新建数据库链接;

16.填写数据库相关信息,点击Test Connection;

17.如果链接失败可能是驱动的问题,点击左上角的小扳手,进入数据库设置界面

18.连接成功后,显示数据库信息,user表的基本信息也显示了,下面就照这个来了;

19.往下的我就没照做了,下面是我自己搭建的项目



20.我的数据库,连的mycat。启动三台虚拟机,运行linux1和linux2中的mysql,运行Linux3中的mycat,关闭防火墙



21.原文传送门
点这里

第三章 整合全局捕获异常

前言

@ExceptionHandler 表示拦截异常
• @ControllerAdvice 是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
• @ControllerAdvice 可以指定扫描范围
• @ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,需要使用 @ResponseBody 进行 json 转换
o 返回 String,表示跳到某个 view
o 返回 modelAndView
o 返回 model + @ResponseBody

@ControllerAdvice

1. 控制层代码

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ErrorController {
 // 全局捕获异常 使用AOP技术,采用异常通知
 @RequestMapping("/getUser")
 public String getUser(int i){
 int j = 1/i;
 return "success"+j;
 }
}

2.异常拦截代码

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@ControllerAdvice(basePackages = "com.example.test.controller")
public class GlobalExceptionHandler {
 @ExceptionHandler(RuntimeException.class)
 @ResponseBody
 public Map<String,Object> errorResult(){
 Map<String,Object> errorResultMap = new HashMap<>();
 errorResultMap.put("errorCode","500");
 errorResultMap.put("errorMsg","系统错误!");
 return errorResultMap;
 }
}

3.运行结果

第四章 springboot+log4j.yml配置日志文件

前言

此处为转载,原作者写的比较详细,就一个地方有问题,去掉默认日志,加载别的日志 , 切换log4j2日志读取应该放在spring-boot-starter下而不是spring-boot-starter-web;会无法打包

一,Maven 依赖 pom.xml配置

1. 掉默认日志,以便切换到log4j2的日志依赖

 <dependency>
 <!-- 包含 mvc,aop 等jar资源 -->
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter</artifactId>
 <exclusions>
 <!--去掉默认日志,加载别的日志 , 切换log4j2日志读取 -->
 <exclusion>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-logging</artifactId>
 </exclusion>
 </exclusions>
 </dependency>

2. 然后添加如下两个日志依赖

<!-- 配置 log4j2 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>

		<!-- 加上这个才能辨认到log4j2.yml文件 -->
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
		</dependency>

二,在工程根目录下添加 lo4g2.yml 配置文件

1, 文件存放位置

2, 配置文件内容

# 共有8个级别,按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
Configuration:
 status: warn
 monitorInterval: 30
 Properties: # 定义全局变量
 Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下:
 #测试:-Dlog.level.console=warn -Dlog.level.xjj=trace
 #生产:-Dlog.level.console=warn -Dlog.level.xjj=info
 - name: log.level.console
 value: info
 - name: log.path
 value: log
 - name: project.name
 value: opendoc
 - name: log.pattern
 value: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n"
 Appenders:
 Console: #输出到控制台
 name: CONSOLE
 target: SYSTEM_OUT
 PatternLayout:
 pattern: ${log.pattern}
# 启动日志
 RollingFile:
 - name: ROLLING_FILE
 fileName: ${log.path}/${project.name}.log
 filePattern: "${log.path}/historyRunLog/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
 PatternLayout:
 pattern: ${log.pattern}
 Filters:
# 一定要先去除不接受的日志级别,然后获取需要接受的日志级别
 ThresholdFilter:
 - level: error
 onMatch: DENY
 onMismatch: NEUTRAL
 - level: info
 onMatch: ACCEPT
 onMismatch: DENY
 Policies:
 TimeBasedTriggeringPolicy: # 按天分类
 modulate: true
 interval: 1
 DefaultRolloverStrategy: # 文件最多100个
 max: 100
# 平台日志
 - name: PLATFORM_ROLLING_FILE
 ignoreExceptions: false
 fileName: ${log.path}/platform/${project.name}_platform.log
 filePattern: "${log.path}/platform/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
 PatternLayout:
 pattern: ${log.pattern}
 Policies:
 TimeBasedTriggeringPolicy: # 按天分类
 modulate: true
 interval: 1
 DefaultRolloverStrategy: # 文件最多100个
 max: 100
# 业务日志
 - name: BUSSINESS_ROLLING_FILE
 ignoreExceptions: false
 fileName: ${log.path}/bussiness/${project.name}_bussiness.log
 filePattern: "${log.path}/bussiness/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
 PatternLayout:
 pattern: ${log.pattern}
 Policies:
 TimeBasedTriggeringPolicy: # 按天分类
 modulate: true
 interval: 1
 DefaultRolloverStrategy: # 文件最多100个
 max: 100
# 错误日志
 - name: EXCEPTION_ROLLING_FILE
 ignoreExceptions: false
 fileName: ${log.path}/exception/${project.name}_exception.log
 filePattern: "${log.path}/exception/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
 ThresholdFilter:
 level: error
 onMatch: ACCEPT
 onMismatch: DENY
 PatternLayout:
 pattern: ${log.pattern}
 Policies:
 TimeBasedTriggeringPolicy: # 按天分类
 modulate: true
 interval: 1
 DefaultRolloverStrategy: # 文件最多100个
 max: 100
# DB 日志
 - name: DB_ROLLING_FILE
 ignoreExceptions: false
 fileName: ${log.path}/db/${project.name}_db.log
 filePattern: "${log.path}/db/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
 PatternLayout:
 pattern: ${log.pattern}
 Policies:
 TimeBasedTriggeringPolicy: # 按天分类
 modulate: true
 interval: 1
 DefaultRolloverStrategy: # 文件最多100个
 max: 100
 Loggers:
 Root:
 level: info
 AppenderRef:
 - ref: CONSOLE
 - ref: ROLLING_FILE
 - ref: EXCEPTION_ROLLING_FILE
 Logger:
 - name: platform
 level: info
 additivity: false
 AppenderRef:
 - ref: CONSOLE
 - ref: PLATFORM_ROLLING_FILE
 - name: bussiness
 level: info
 additivity: false
 AppenderRef:
 - ref: BUSSINESS_ROLLING_FILE
 - name: exception
 level: debug
 additivity: true
 AppenderRef:
 - ref: EXCEPTION_ROLLING_FILE
 - name: db
 level: info
 additivity: false
 AppenderRef:
 - ref: DB_ROLLING_FILE
# 监听具体包下面的日志
# Logger: # 为com.xjj包配置特殊的Log级别,方便调试
# - name: com.xjj
# additivity: false
# level: ${sys:log.level.xjj}
# AppenderRef:
# - ref: CONSOLE
# - ref: ROLLING_FILE

3, 在application.yml引入log4j2.yml

#在application.yml引入log4j2.yml
logging:
 config: classpath:log4j2.yml 

三, 不同日志枚举类

1, 本地日志枚举类

package com.tcs.irecr.util;
/**
 *
 * 本地日志枚举
 * 由于配置了4个文件存放不同日志,分别为平台日志(${project.name}_platform.log)、 业务日志(${project.name}_bussiness.log)、错误日志(${project.name}_exception.log)、DB 日志(${project.name}_db.log),
 * 文件夹外面为运行日志,不同文件日志级别不一样,因此程序员在开发时候需要注意引入不同日志,
 * 也就是说开发出现的日志,程序员可以进行分类,分别调用公共方法即可。
 * 公共类编辑如下;
 *
 * @author 1632369
 *
 */
public enum LogEnum {

	BUSSINESS("bussiness"),PLATFORM("platform"),DB("db"),EXCEPTION("exception");

 private String category;

 LogEnum(String category) {
 this.category = category;
 }

 public String getCategory() {
 return category;
 }

 public void setCategory(String category) {
 this.category = category;
 }

}

四, 不同日志工具类util编辑

1, 本地日志参考类

package com.tcs.irecr.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 本地日志参考类
 * @author Administrator
 *
 */
public class LogUtils {
	 /**
 * 获取业务日志logger
 *
 * @return
 */
 public static Logger getBussinessLogger() {
 return LoggerFactory.getLogger(LogEnum.BUSSINESS.getCategory());
 }

 /**
 * 获取平台日志logger
 *
 * @return
 */
 public static Logger getPlatformLogger() {
 return LoggerFactory.getLogger(LogEnum.PLATFORM.getCategory());
 }

 /**
 * 获取数据库日志logger
 *
 * @return
 */
 public static Logger getDBLogger() {
 return LoggerFactory.getLogger(LogEnum.DB.getCategory());
 }

 /**
 * 获取异常日志logger
 *
 * @return
 */
 public static Logger getExceptionLogger() {
 return LoggerFactory.getLogger(LogEnum.EXCEPTION.getCategory());
 }

}

五, 运行时自动在工程目录下生产日志目录和日志文件

六, 原文章传送门

点这里

第五章 Spring Boot集成lombok

前言

简洁代码,很实用的插件

一,Maven 依赖 pom.xml配置

1. 导入依赖包

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>

2. 使用IDEA需要安装Lombok插件,我这里已经下载好,如果没下载安装点击install进行下载安装即可

3. 实体类演示@Data----简化get/set,toString等方法,@Slf4j------简化 protected final Logger logger = LoggerFactory.getLogger(this.getClass());

import lombok.Data;

@Data
public class UserInfoDto {
 private Integer id;
 private String name;
}

import com.example.test.dto.UserInfoDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@Slf4j
public class helloController {
 @RequestMapping("/index")
 public String sayHello(){
 UserInfoDto userInfoDto = new UserInfoDto();
 userInfoDto.setId(1);
 userInfoDto.setName("天下第一");
 log.info("打印结果是-----"+userInfoDto.toString());
 return "index";
 }
}

3.其他特性

@Data 标签,生成getter/setter toString()等方法
@NonNull : 让你不在担忧并且爱上NullPointerException
@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
@Setter/@Getter : 自动生成set和get方法
@ToString : 自动生成toString方法
@EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
自动生成构造方法
@Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
@Value : 用于注解final类
@Builder : 产生复杂的构建器api类
@SneakyThrows : 异常处理(谨慎使用)
@Synchronized : 同步方法安全的转化
@Getter(lazy=true) :
@Log : 支持各种logger对象,使用时用对应的注解,如:@Log4

第六章 Spring Boot使用@Async实现异步调用

前言

现实中校验excel时可能会用到,之前项目校验上传数据时我是单开了个线程完成通知,看这次能不能替换实现。

一,Controller类

1. 启动加上@EnableAsync

import com.example.test.service.MemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * springboot异步调用
 */
@RestController
@Slf4j
@EnableAsync // 开启异步调用
public class MemberController {
 @Autowired
 private MemberService memberService;
 @RequestMapping("/addMemberAndEmail")
 public String addMemberAndEmail(){
 log.info("1");
 String result = memberService.addMemberAndEmail();
 log.info("4");
 return "result"+result;
 }
}

2.需要执行异步方法上加入 @Async,在方法上加上@Async之后 底层使用多线程技术

import com.example.test.service.MemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class MemberServiceImpl implements MemberService {
 @Override
 @Async // 相当于此方法单独开辟一个新线程执行
 public String addMemberAndEmail() {
 log.info("2");
 try {
 Thread.sleep(5000);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 log.info("3");
 return "2021新年好!!!";
 }
}

3.执行结果未加 @Async和@Async


4.执行结果加 @Async和@Async


第七章 Spring Boot不同环境配置文件

前言

注意:yml文件冒号前一定要加空格…

一.@Value的使用与开发,测试,生产环境不同配置文件使用

1. 此处仅用开发环境文件做演示,建立application-dev.yml文件

2. 配置application.yml文件

代码

spring:
 profiles:
 active: dev

3. 演示代码controller层

import com.example.test.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ValueController {
 @Autowired
 private MemberService memberService;

 @RequestMapping("/testValue")
 public String testValue(){
 return memberService.readUrlbyValue();
 }
}

4. 演示代码servicer层

import com.example.test.service.MemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class MemberServiceImpl implements MemberService {

 @Value("${devurl}")
 private String devurl;

 @Override
 @Async // 相当于此方法单独开辟一个新线程执行
 public String addMemberAndEmail() {
 log.info("2");
 try {
 Thread.sleep(5000);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 log.info("3");
 return "2021新年好!!!";
 }

 @Override
 public String readUrlbyValue() {
 return devurl;
 }
}

5. 运行结果

![在这里插入代码片](https://img-blog.csdnimg.cn/20210205103858693.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3llamlhbGlhbmd6aQ==,size_16,color_FFFFFF,t_70)

第八章 Spring Boot与mybatis三剑客

前言

说实话今天我为了整合这个踩了不少坑,花了将近半天时间才成功。这里记下来避免好学者和我一样查资料浪费时间

一.逆向生成文件–神器MyBatis-Generator

1.首先不多说pom.xml导入需要架包,这里踩坑一,我之前用的mysql-connector-java版本是8.0.12,而我的mysql版本只有 5.7.33,生成时会报 CLIENT_PLUGIN_AUTH is required错误,而且驱动应该改成"com.mysql.cj.jdbc.Driver"而不是"com.mysql.jdbc.Driver"。

 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid-spring-boot-starter</artifactId>
 <version>1.1.10</version>
 </dependency>
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.41</version>
 <scope>runtime</scope>
 </dependency>

		 <!--MBG插件-->
 <plugin>
 <groupId>org.mybatis.generator</groupId>
 <artifactId>mybatis-generator-maven-plugin</artifactId>
 </plugin>

2. 配置generatorConfig.xml文件, 配置文件中的是配置驱动的一个简单的方式,可以通过location制定路径。

​ 元素用于指定生成一组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。其中的defaultModelType属性很重要,这个属性定义了MBG如何生成实体类,推荐使用flat模式,为每一张表只生成一个包含表所有字段的实体类。

​ 指定生成实体类的生成路径,trimStrings属性会对查询条件进行trim操作,默认值是false。

​ 指定生成xml文件的路径。

​ 指定生成dao接口。

可以配置多个,用于指定生成数据库中的那个表的底层类,可以指定生成的实体类的name,enableCountXXX属性可以去除不需要的sql方法,其中columnOverride可以指定表中使用的枚举类,ignoreColumn可以忽略表中的字段,columnOverride和ignoreColumn可以指定0个或多个。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
 <classPathEntry
 location="F:\repository\mysql\mysql-connector-java\5.1.41\mysql-connector-java-5.1.41.jar"/>

 <context id="MysqlTables" targetRuntime="MyBatis3" defaultModelType="flat">

 <property name="javaFileEncoding" value="UTF-8"/>

 <commentGenerator>
 <property name="suppressDate" value="false"/>
 <property name="addRemarkComments" value="true"/>
 <property name="suppressAllComments" value="false"/>
 </commentGenerator>

 <jdbcConnection driverClass="com.mysql.jdbc.Driver"
 connectionURL="jdbc:mysql://192.168.70.122:8066/TESTDB?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false"
 userId="root"
 password="123456">
 <property name="nullCatalogMeansCurrent" value="true"/>
 </jdbcConnection>

 <javaTypeResolver>
 <property name="forceBigDecimals" value="false"/>
 </javaTypeResolver>

 <javaModelGenerator targetPackage="com.example.test.entity"
 targetProject="src\main\java">
 <property name="enableSubPackages" value="true"/>
 <property name="trimStrings" value="true"/>
 </javaModelGenerator>

 <sqlMapGenerator targetPackage="mappers" targetProject="src\main\resources">
 <property name="enableSubPackages" value="true"/>
 </sqlMapGenerator>

 <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.test.dao"
 targetProject="src\main\java">
 <property name="enableSubPackages" value="true"/>
 </javaClientGenerator>

 <table schema="" tableName="user_info" enableCountByExample="true" domainObjectName="userInfo">
 </table>

 <!-- <table schema="ins_personal_claim" tableName="claim_image_info" enableCountByExample="false" domainObjectName="ClaimImageInfo">
 <columnOverride column="image_type" javaType="com.jd.ins.personal.claim.domain.enums.ImageType" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
 <ignoreColumn column="create_time"/>
 <ignoreColumn column="update_time"/>
 </table>-->

 </context>
</generatorConfiguration>

3. mvn install 和点击myBatis-Generator生产文件

4. 结果

二.mybatis plugin

1. mybatis plugin作为一款优秀的mybatis跳转插件

2. 安装重启,分页插件就不说了,项目中用别的插件。


到此这篇关于SpringBoot项目从搭建到发布一条龙的文章就介绍到这了,更多相关SpringBoot项目搭建发布内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA 通过docker插件发布springboot项目的详细教程

    一.编写Dockerfile文件 (1)右键项目名,新建一个文本文件,把名字改成Dockerfile,不用后缀.放在项目根目录下. (2)填写Dockerfile内容 FROM openjdk:8 VOLUME /tmp ADD target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] FROM openjdk:8  // 表示基础环境是jdk8 ADD target/*.jar app

  • IDEA基于支付宝小程序搭建springboot项目的详细步骤

    服务端 在平台上创建springboot小程序应用 创建小程序 登录蚂蚁金服开放平台,扫码登录填写信息后,点击支付宝小程序,选择立即接入 > 同意个人公测 > 开始创建 . 填写好小程序基本信息后,点击创建按钮,创建名为xxx小程序. PS:一个账号下最多可以创建10个小程序:未提交过审核的小程序可以删除,删除的小程序不在计数范围. 创建云应用后端服务 在小程序页面选择刚创建的小程序,点击查看,进入开发者页面. 在左侧导航栏选择云服务(免费),点击创建云服务,选择创建云应用,技术栈选Sprin

  • idea快速搭建springboot项目的操作方法

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置',实现零配置. 那么,如何在idea中创建一个springboot项目呢? 一.在你建立的工程下创建 Module 选择Spring initializr创建. 二.在Type处选择: Maven Project(项目的构建工具) 三.创建依赖时勾上web,mybatis,mysql(这个看你个人需要吧,可以自主选择) 建立好的项目结构如下: 相对应的

  • Maven搭建springboot项目的方法步骤

    Maven搭建springboot项目 本文是基于Windows 10系统环境,使用Maven搭建springboot项目 Windows 10 apache-maven-3.6.0 IntelliJ IDEA 2018.3.4 x64 一.springboot项目搭建 (1) 新建目录 在某个可用目录下,新建一个文件夹,本文新建目录为 D:\demo\zs200 (2) 创建maven父工程zs200a-parent 填写项目maven坐标 填写项目名称和路径 (2) maven父工程zs20

  • SpringBoot项目打包发布到外部tomcat(出现各种异常的解决)

    先说遇到问题的情景: 初次尝试使用spring boot框架写了个小web项目,在Intellij IDEA中能正常启动运行.使用maven 运行install,生成war包,发布到本机的tomcat下,出现异常,主要的异常信息是  .......LifeCycleException.经各种搜索,找到答案. spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢? 1. 既然需要

  • SpringBoot项目从搭建到发布一条龙

    前言 目前正在练手springboot+vue,因为很多步骤会遇到困难,当时查完资料解决,过一段时间就会忘记,所以决定建个系列记录下来.因为中间很多过程已经被其他大神写过,且这次开发经历仅供学习分享与讨论,就直接借鉴过来了,会附上原作者传送门.本次项目准备写文档临时起意,之前的步骤未作记录,比如部署linux虚拟机,利用mycat实现读写分离等,这个等项目需要用到的时候再加说明.好了现在让我们开始吧! 第二章 使用IDEA搭建一个简单的SpringBoot项目--初始化项目 前言 该篇文章质量很

  • 一个简单的SpringBoot项目快速搭建详细步骤

    目录 前言 第一步新建项目 第二步导入依赖 第三步配置Application 第四步创建需要的mapper.service.cotroller层 创建需要的文件夹 创建数据库 创建pojo类 创建mapper接口 创建对于mapper接口的xml文件 创建service层 创建controller层 第五步测试请求 总结 前言 本文章仅供大家参考,如果对大家有起到帮助的话可以点赞支持一下~ 主要发布是为了本人以后能方便的搭建一个SpringBoot项目的框架!!! 源码路径在文章最下方! 第一步

  • springboot项目快速搭建的方法步骤

    1. 问题描述 springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础上,对已有的maven gav进行了封装而已,今天用最简单的代码快速入门springboot. 2. 解决方案 强烈推荐大家使用Idea的付费版(破解感谢下蓝宇),Idea对maven.git等插件支持的更加好. 使用idea自带的spring Initializr(实际调用的是springboot的官网上的initializr),快速新建springbo

  • IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

    之前博客已经谈到配置docker远程链接服务,这里再介绍如何在IDEA中配置docker,将项目部署到服务器上 前文 Docker之开启远程访问的实现 idea2021激活教程 https://www.yuque.com/docs/share/b996d27e-c888-45f2-bb1e-f6db5efe2485?# https://www.jb51.net/article/178193.htm 去插件中心安装Docker插件,安装完重启IDEA.这个简单 配置连接远程docker,打开Doc

  • Springboot项目的搭建教程(分离出common父依赖)

    目录 一.创建新项目 二.分离出common父依赖 三.项目对父依赖的引用 四.项目的依赖和配置文件 随着项目前后端分离的推广,越来越多的企业开始注重在项目设计时,将项目进行前后端分离.所谓前后端分离,前端和后端区分开来,前端和后端都可以脱离于彼此单独运行,而后端则大多用Springboot,也就是此博文的重点. 一.创建新项目 首先需要新建一个Spring项目,可以用开发工具,例如eclipse.IntelliJ IDEA.STS等进行Spring项目的创建(这里省略),也可以直接上Sprin

  • 在SpringBoot项目中整合拦截器的详细步骤

    目录 引言 1.创建一个SpringBoot项目工程 2.配置自定义的拦截器 3.注册拦截器 4.编写控制器 总结 引言 拦截器在Web系统中非常常见,对于某些全局统一的操作,我们可以把它提取到拦截器中实现.总结起来,拦截器大致有以下几种使用场景: 1.权限检查:如登录检测,进入处理程序检测用户是否登录,如果没有,则直接返回登录页面或error错误页面: 2.性能检测:有时系统在某段时间莫名其妙很慢,我们可以通过拦截器在进入处理程序之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时

  • SpringBoot多模块项目框架搭建过程解析

    这篇文章主要介绍了SpringBoot多模块项目框架搭建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建根项目,New Project 创建一个名为 sms-bomber 的 SpringBoot 新项目,打包为 JAR 的即可,这里只添加 Lombok 与 spring-boot-starter-web 依赖,这两个依赖会传递给所有子模块,删除创建完成的项目中的 .mvn\ src\ mvnw mvnw.cmd 创建启动模块,根目

随机推荐