目录结构
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