SpringBoot的n中启动方式可以自行google/baidu,我们线上采用的是:
java -Dserver.port=9999 -cp /path/xxx org.springframework.boot.loader.PropertiesLauncher
这种启动方式相对 java -jar xx.jar 的好处是jar包被解压了,形成了文件的格式,具有更好的兼容性。
操作
1、新建 META-INF 目录,将jsp数据移动到该目录下 , 最后格式如下:
➜ main tree
├── java
│ └── com
│ └── example
│ └── demo
│ ├── DemoApplication.java
│ └── view
│ └── CC.java
└── resources
├── META-INF
│ └── a.jsp
└── application.properties
2、配置Tomcat#context
@Component
public class XXX implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addContextCustomizers(new TomcatContextCustomizer() {
@Override
public void customize(Context context) {
//根据ECS/DOCKER和本地环境进行配置,这里指向jar包解压后的META-INF,绝对路径
context.setDocBase("/Users/admin/open/demo/target/xx/META-INF");
}
});
}
}
3、组合拳
使用IDEA新建立一个demo项目
➜ mvn clean compile package -Pdev
➜ cd target
➜ unzip demo-0.0.1-SNAPSHOT.jar -d xx
➜ cd xx
➜ ls
BOOT-INF META-INF org
java -Dserver.port=9999 org.springframework.boot.loader.PropertiesLauncher
#最后 curl 127.0.0.1:9999/a.jsp
你一定需要jsp访问吗
如果仅仅只是用jsp作为外部的跳转链接,那自己是大可不必的. 还有以下2种方式来进行处理
- Controller
- servlet
不再描述