学习的杂七杂八

开发遇到的问题…

1. windows端口被占用

#查询端口
netstat -ano
#查询指定端口
netstat -ano | findstr "端口号"
#根据p进程pid查询进程名称
tasklist |findstr "进程pid号"
#根据pid杀死任务
taskkill /f /pid "进程pid号"
#根据进程名称杀死任务
taskkill -f -t -im "进程名称"

2. 记录异常 没有主清单属性

原因:pom.xml中未配置spring-boot-maven-plugin

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.0</version>
            </plugin>
        </plugins>
</build>

原因类似于运行的 jar包中找不到主Class

3. windows CMD的输入自动补全功能

例如:

java -jar springboot_ssmp-0.0.1-SNAPSHOT.jar

其中,在输入jar包中的s之后按tab键即可自动补全后续内容
而部分用户无法使用该功能,解决方法如下:

 - win+R打开运行界面
 - 输入regedit,点击确定
 - 查找路径 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
 - 选择CompletionChar,更改数值数据为9
 - 重启cmd窗口即可

4. git项目导入遇到的问题

拉入的项目代码爆红,原因是maven配置的问题。
在setting–>build,Execution,Deployment–>的MAVEN home path 中选择Bundled(Maven 3)

5. springboot项目application.yml优先级问题

  • 一般开发人员:classpath: application.yml
  • 项目经理:classpath: config/application.yml
  • 运维人员:file: application.yml
  • 最顶层:file: /config/application.yml
    文件内容属于叠加并覆盖
    a1b + a2c = a2bc

6. springboot多环境开发的问题

#设定启动环境
spring:
	profiles:
		active:pro
 ---
 #配置开发常用环境,例如开发、生产、测试环境
spring:
	profiles:pro
server:
	port:80
---
	spring:
	profiles:dev
server:
	port:81
---
	spring:
	profiles:test
server:
	port:82

正常开发项目中,则使用以下情况:

resources/application.yml
		/application-dev.yml(port:80)
		/application-pro.yml(port:81)
		/application-test.yml(port:82)
#在application.yml中则配置如下:
spring:
	profiles:
		active:dev
#则决定调用application-dev.yml

再实际的情况下,配置文件目录通常是这样的

resources/application.yml
				/application-dev.yml
				/application-devDB.yml
				/application-devMVC.yml
则在application中:
仅仅写成
spring:
	pofile:
		active:dev
是不行的,因为application-devDB.yml和/application-devMVC.yml中的内容则不会生效
因此需要添加:
spring:
	pofile:
		active:dev
		include:devMVC,devDB
ps:相同属性后添加的覆盖前添加的
ps:以上为落后的技术

新版本之后:

在application中:
spring:
	pofile:
		active:dev
		group:
			"dev": devDB,devMVC
			"pro": proDB,proMVC

pom.xml中配置多环境

<profiles>
        <profile>
            <id>dev_env</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>pro_env</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
        </profile>
        <profile>
            <id>test_env</id>
            <properties>
                <profile.active>test</profile.active>
            </properties>
        </profile>
</profiles>

在springboot中引用maven属性

spring:
	profiles:
		active: @profile.active@

7. 使用日志工具记录日志

debug 、info、 warn、error

logging:
	#设置日志组
	group:
		#自定义组名,设置当前组中所包含的包
		ebank: com.xxx.controller
	level:
		root: warn
		#为对应组设置日志级别
		ebank: debug
		#为对应包设置日志级别
		com.xxx.controller: debug

设置日志输出格式

#设置日志模板格式
pattern:
	console: "%d - %m %n"
#or
console: "%d %p %n"
console: "%d %5p %n"  5代表占五个位置

8. 启动热部署

在pom.xml配置spring-boot-devtolls
再使用ctrl+F9激活热部署
自动bulid流程

  • settings–>compile–>Build project automatically-
  • Maintenance–>Registry–>compile.automake.allow.when.app.running

默认不出发重启的目录列表:

  • /META-INF/maven
  • /META-INF/resources
  • /resources
  • /static
  • /public
  • /template

可在application.yml文件中修改
高级别关闭热部署:
Applicaton.java中

System.steProperty("spring.devtolls.restart.enabled","false");

9. 配置高级

  • @EnableConfigurationProperties注解可以将使用@ConfigurationProperties注解对应的类加入spring容器
  • @EnableConfigurationProperties与@Component不能同时使用
  • @ConfigurationProperties注解的属性支持松散绑定,@Value则不支持
  • 遇到问题时将@ConfigurationProperties(prefix = “abcde”)里面的属性全小写
  • springboot支持JDK8提供的时间与空间计量单位,如:
 @DurationUnit(ChronoUnit.MINUTES)
 private Duration severTimeOut;
 @DataSizeUnit(DataUnit.MEGABYTES)
 private DataSize dataSize;
 配置文件如下:
 servers:
	serverTimeOut: 3

 @DataSizsUnit(DataUnit.MEGABYTES)----->MB
 private DataSize datasize;
 配置文件如下:
  dataSize: 1024
  • 启动Bean属性校验

导入JSR303与hibernate校验框架坐标
使用@Validated注解启用校验功能 是哦那个具体校验规则规范数据校验格式

10. 测试

临时属性通过properties以及args在@SpringBootTest中来进行注入
properties属性可以为当前测试用例添加临时的属性配置
args属性可以为当前测试用例参加临时的命令行参数
当同时出现时,args覆盖properties

使用@Import注解加载当前测试类专用的配置

在测试环境中进行web环境模拟测试

  1. 使用在SpringBootTest中使用webEnviroment属性
  2. 端口可设置多种

测试类中开启虚拟MVC调用

  1. 测试类上使用@AutoConfigureMockMvc注解
  2. 方法中注入虚拟MVC调用对象@AutoWired MockMvc mvc
  3. 创建虚拟请求,访问页面
  4. 执行请求
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值