Spring boot用自带的run方法进行部署,很方便,但是现在用ECLIPSE更习惯,百度上面的很多文章,我看的头疼,基本上都一个样,并且还有冲突的,然后跑到官方文档,翻了了半天才翻到,并且有一个问题,部署上去了,访问方法访问不到
官方文档上面关于传统WAR包部署是很简单的
1.继承一个SpringBoot的一个父类,同时重写configure
方法
@SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
2.maven设置为war包,还有增加一个Provided
<packaging>war</packaging>
<dependencies> <!-- … --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- … --> </dependencies>
gradle设置为
apply plugin: 'war'
dependencies { // … providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' // … }
这样就可以用ECLIPSE或者TOMCAT部署都OK,但是 @SpringBootApplication,这个注解,是扫描同一个包下面的注解,如果不在同一个报下面就不会扫描,所以说如果不在同一个包下面,你必须加注解@ComponentScan(basePackages={"**.*.service","**.*.controller"}) 进行扫描注解