spring-boot day2

夹谷和裕
2023-12-01

目录结构

src/main/java:存放代码
src/main/resources
static: 存放静态⽂件,⽐如 css、js、image,
templates:存放静态⻚⾯jsp,html,tpl
confifig:存放配置⽂件,application.properties
resources:

静态资源文件定位加载路径顺序 

META/resources > resources > static > public
⾥⾯找是否存在相应的资源,如果有则直接返回,否则找不到
原因application.properties默认配置;
默认配置
spring.resources.static-locations = classpath:/METAINF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

 可修改扩展寻找路径

互联网企业一般把静态资源⽂件存储在CDN(内容分发网络)、文件服务器 , HTML CSS 、图⽚等。

spring-boot启动类位置

一般在根目录

三种形式
  • 当启动类和controller在同⼀类中时,在该类上添加注解@Controller即可;
  • 当启动类和controller分开时,启动类要放在根⽬录下,启动类上只需要注解@SpringBootApplication
  • 当启动类和controller分开时,如果启动类在⾮根⽬录下,需要在启动类中增加注解@ComponentScan,并配置需要扫描的包名,如(basePackages = )@ComponentScan(basePackages ={"net.xdclass.controller","net.xdclass.service"})

推荐第⼆种⽅式,不然漏配置扫描包,项⽬庞⼤,出现问题则难排查

springboot启动方式和部署

  • IDEA开发中启动
    • 本地开发中常⽤
    • application.properties里修改端口server.port=8080
  • 外置Tomcat中启动
    • 淘汰
    • 兼容性问题复杂
    • 微服务容器化部署复杂
  • Jar⽅式打包启动
    • 最常用

pom文件新增maven插件

<build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
</build>
如果没有加,则执⾏jar包 ,报错如下
java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar
no main manifest attribute, in spring-boot-demo-0.0.1-SNAPSHOT.jar
  • 必备打包、启动命令
构建:mvn install
构建跳过测试类 mvn install -Dmaven.test.skip=true
target⽬录下有对应的jar包就是打包后项⽬
进到对应的target⽬录启动 java -jar xxxxx.jar 即可
想后台运⾏,就⽤守护进程 nohup java -jar xxx.jar &

打包后的压缩包结构

example.jar
 |
 +-META-INF
 | +-MANIFEST.MF
 +-org
 | +-springframework
 | +-boot
 | +-loader
 | +-<spring boot loader classes>
 +-BOOT-INF
 +-classes
 | +-mycompany
 | +-project
 | +-YourClasses.class
 +-lib
 +-dependency1.jar
 +-dependency2.jar

 类似资料: