SpringBoot加强
1 检查Maven私服镜像位置
检查Maven私服镜像的地址
<mirror><id>aliyun</id><name>aliyun for maven</name><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public</url></mirror>
2 IDEA安装SpringBoot插件
添加插件之后,重启IDEA即可.
3 IDEA创建SpringBoot
1).挑选SpringBoot
2).编辑模块内容
3).选择jar包依赖
4 SpringBoot项目创建方式2
4.1选择maven项目
4.2 构建项目
4.3 编辑POM.xml文件
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
4.4编辑主启动类
package com.jt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication //添加SpringBoot注解
public class SpringBootRun {public static void main(String[] args) {SpringApplication.run(SpringBootRun.class,args);}
}
5 SpringBoot配置说明
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.jt</groupId><artifactId>springboot_demo1</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot_demo1</name><description>入门案例</description><!--parent标签作用: 定义了SpringBoot中所有关联项目的版本号信息.--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><java.version>1.8</java.version><!--项目打包时,跳过测试类打包--><skipTests>true</skipTests></properties><!--开箱即用:SpringBoot项目只需要引入少量的jar包及配置,即可拥有其功能.spring-boot-starter 拥有开箱即用的能力.maven项目中依赖具有传递性.A 依赖 B 依赖 C项目 导入A bc会自动依赖--><dependencies><!--直接依赖web springMVC配置--><dependency><groupId>org.springframework.boot</groupId><!--springBoot-start SpringBoot启动项 --><artifactId>spring-boot-starter-web</artifactId></dependency><!--SpringBoot重构了测试方式 可以在测试类中 直接引入依赖对象--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><!--在项目打包部署时生效,如果不添加build,则程序发布时不然会报项目中没有main方法.--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
6 SpringBoot启动原理说明
1.SpringBoot整体运行流畅?
2.SpringBoot为什么可以开箱即用? 看注解的底层
7 关于SpringBoot配置文件说明
7.1 properties说明
说明:
1.pro文件本身是key-value结构的,并且本身都是字符串的定义.
2.SpringBoot程序读取pro文件默认使用ISO-8859-1格式编码. 如果需要读取pro文件,则需要手动的指定UTF-8格式.
7.2yml配置文件
# yml 1.key-value结构
# 2.key-value之间使用": "方法链接
# 3.YML配置文件有缩进的效果.
# 4.YML配置文件默认采用utf-8编码.
server:servlet:context-path: / #设定项目发布路径port: 8090
8 配置文件为属性赋值的方式
8.1 业务场景
场景:需要实现文件上传操作,需要指定文件上传的目录.如果将上传文件的目录信息直接写死到代码中,这样的代码耦合性高.不便于扩展.
8.2 利用@Value方式赋值
8.2.1 编辑YML配置文件
# yml 1.key-value结构
# 2.key-value之间使用": "方法链接
# 3.YML配置文件有缩进的效果.
# 4.YML配置文件默认采用utf-8编码.
server:servlet:context-path: / #设定项目发布路径port: 8090#配置图片上传路径
image:localDir: D:/JT-SOFT/images
8.2.2 编辑FileController
package com.jt.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class FileController {//问题:如何将配置作为动态的获取?????@Value("${image.localDir}") //spel表达式Spring框架所提供的.private String localDir; // = "D:\\JT-SOFT\\images"; //如果放到这里则代码的耦合性高.@RequestMapping("/getPath")public String getPath(){System.out.println("指定图片地址:"+localDir);return "图片地址为:"+localDir;}
}
8.3 指定配置文件为属性赋值
需求: YML配置文件是SpringBoot整合第三方配置文件,如果将业务配置与YML配置写到一起,则不方便管理.能否在指定的配置文件(pro)中实现属性的赋值.
8.3.1 编辑Pro文件
8.3.2指定字符编码格式
8.3.3 编辑FileController
package com.jt.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
//导入配置文件,之后由Spring容器扫描
@PropertySource(value = "classpath:/properties/image.properties", encoding = "UTF-8")
public class FileController {@Value("${image.localDir}") //spel表达式Spring框架所提供的.private String localDir; // = "D:\\JT-SOFT\\images"; //如果放到这里则代码的耦合性高.@RequestMapping("/getPath")public String getPath(){System.out.println("指定图片地址:"+localDir);return "图片地址为:"+localDir;}
}
9 热部署
9.1添加jar包
<!--支持热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>
9.2编辑IDEA
组合键: ctrl + alt + shirt + /
10 环境切换
10.1业务场景
一般开发时使用的都是测试环境.当项目上线时需要在生产环境下部署项目.
问题: 在测试环境中的配置与生产环境下的配置可能不一致,经常需要修改IP地址及端口.
想法:能否简化该操作?
策略:指定多个运行环境. 当现在处于测试环境时,让配置文件指向测试. 反之做相同的操作.
10.2 编辑YML配置文件
# 测试环境 /jt 端口号 8095 生产环境: / 端口号8090 配置必须完整.
#设定默认的环境
spring:profiles:active: test---
# yml 1.key-value结构
# 2.key-value之间使用": "方法链接
# 3.YML配置文件有缩进的效果.
# 4.YML配置文件默认采用utf-8编码.#定义环境名称
spring:profiles: prod
server:servlet:context-path: / #设定项目发布路径port: 8090#配置图片上传路径
#image:#localDir: D:/JT-SOFT/images#设定分割线
---
# 设定环境名称
spring:profiles: testserver:servlet:context-path: /jt #设定项目发布路径port: 8095
10.3配置LomBok
10.3.1添加jar包文件
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
10.3.2 添加注解
package com.jt.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;@Data //set/get/toString方法只会重写自己的属性,不会添加父级的属性
@Accessors(chain = true) //链式加载规则
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
public class User {private Integer id;private String name;private Integer age;private String sex;//accessors重写了set方法/* public User setId(Integer id){this.id = id;return this;}*/}
10.3.3 面试题
问:项目发布是在Linux中发布的,LomBok的使用一般都需要安装插件.问题:如果在Linux中发布项目,是否需要重写安装LomBok插件.
答案: 不需要
原有: Lombok是编辑期有效.重写了set/get/toString等方法. 编辑期指代码由.java文件编译为.class文件.
SpringBoot加强相关推荐
- 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...
- Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器
Dockerfile 将springboot项目jar包打成镜像,并将yml配置文件外挂. # 以一个镜像为基础,在其上进行定制.就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜 ...
- SpringBoot部署脚本,拿走即用!
一个可以直接拿来使用的shell脚本,适用于springboot项目 #!/bin/bash # 这里可替换为你自己的执行程序,其他代码无需更改,绝对路径相对路径均可. # 若使用jenkins等工具 ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- springboot整合swagger2之最佳实践
来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/ Swagger是一款RESTful接口的文档在线自动生成.功能测试功能框架. 一 ...
- SpringBoot中实现quartz定时任务
Quartz整合到SpringBoot(持久化到数据库) 背景 最近完成了一个小的后台管理系统的权限部分,想着要扩充点东西,并且刚好就完成了一个自动疫情填报系统,但是使用的定时任务是静态的,非常不利于 ...
- Springboot 利用AOP编程实现切面日志
前言 踏入Springboot这个坑,你就别想再跳出来.这个自动配置确实是非常地舒服,帮助我们减少了很多的工作.使得编写业务代码的时间占比相对更大.那么这里就讲一下面向切面的日志收集.笔者使用lomb ...
- 【Springboot】日志
springBoot日志 1.目前市面上的日志框架: 日志门面 (日志的抽象层): JCL(Jakarta Commons Logging) ...
- 【springboot】配置
配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的: •application.properties •application.yml 配置文件的作用:修改SpringBoot自 ...
- 【springboot】入门
简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...
最新文章
- 云计算的8个常见用途
- [我的1024开源程序]30元写的广义误差分布函数
- python3(四)Pandas库
- CentOS 6.4 yum安装LAMP环境
- 【华为云技术分享】漫谈Huawei LiteOS五大内核模块
- webpack打包样式资源_使用loader去打包css文件_打包less文件---webpack工作笔记004
- 如何删除拒绝访问的文件
- dwm1000 用c语言控制,DWM1000 测距原理简单分析(示例代码)
- ArduinoUNO实战-第十七章-火焰传感器
- 用Java检验统一社会信用代码是否为真
- 图解!24张图彻底弄懂九大常见数据结构!
- 北邮计算机学院复试分数线,2018年北京邮电大学复试分数线
- android 后台实时定位,实现后台定位,持续无限制定位
- 猪年开年喜报—涛思数据完成 Pre A轮融资
- vue设置video图片_vue-video-player视频播放器使用配置详解
- 【conda】conda环境的复制移植的两种方法
- C语言程序设计-五子棋游戏设计系统01
- math: 车辆转弯半径/akerman结构转弯半径
- ueditor图片上传 flash插件初始化失败
- Linux内核机制总结内存管理之页表缓存(十九)