springboot
目录
启动命令
- 指定配置文件: java -jar your-application.jar --spring.profiles.active=test
断言
大概得用法:传参必须满足方法的情况,比如,isTrue,参数就必须是true,否则就保错,notNull,参数就必须不为Null,否则就报错。
获取项目的跟路径
获取当前包的根路径
及文件所在项目,多模块项目,不一定是启动类那个包
@Autowired
org.springframework.core.io.ResourceLoader resourceLoader;
org.springframework.core.io.Resource resource =resourceLoader.getResource("classpath:/word/demo.docx");
log.info("getURL: {}", resource.getURL());
log.info("当前项目模板磁盘绝对路径: {}", resource.getURL().getPath());
log.info("getFilename: {}",resource.getFilename());
获取Springboot启动类那个包的根路径
ResourceUtils.getURL("classpath:").getPath()
启动完成后执行方法
2个接口
org.springframework.boot.ApplicationRunner
org.springframework.boot.CommandLineRunner
详细介绍
https://blog.csdn.net/qq_38366063/article/details/111643153?ops_request_misc=&request_id=&biz_id=102&utm_term=想请问下大家,springboot在完成启动后,通过线程池执&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-111643153.142v72control,201v4add_ask&spm=1018.2226.3001.4187
点击查看代码
@Slf4j
@Component
public class RunnerTest implements ApplicationRunner, CommandLineRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("服务启动RunnerTest ApplicationRunner执行启动加载任务...");
String[] sourceArgs = args.getSourceArgs();
if (null != sourceArgs) {
for (String s : sourceArgs) {
System.out.println(s);
}
}
System.out.println("服务启动RunnerTest ApplicationRunner执行启动加载任务...option参数...");
Set<String> optionNames = args.getOptionNames();
for (String s : optionNames) {
System.out.println(s + "" + JSONObject.toJSONString(args.getOptionValues(s)));
}
}
@Override
public void run(String... args) throws Exception {
System.out.println("服务启动RunnerTest CommandLineRunner 执行启动加载任务...");
if (null != args) {
for (String s : args) {
System.out.println(s);
}
}
}
}
单元测试
-
目录结构
-
要用到spring管理的bean那种
test类是用junit包和import org.junit.jupiter.api.Test;2个都试一下
注意点
1:测试方法需要加@Test
2:方法必须是public void
3: 方法必须没有参数
4: 一定要能独立测试,不能有任何依赖
配置文件
项目启动时spring容器的所有bean都是延迟加载
可配在自己本地,可提高启动时间40%。
启动正常,但登录会有些系统异常
spring:
main:
lazy-initialization: true
idea实现服务启多个实例
- yml文件示例:
server:
port: ${port:9201}
- 设置jvm启动端口
1:
2:添加端口参数 -Dport=xxx (固定写法)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通