springboot搭建以及釋出到tomcat伺服器中
本想整理一下springboot的優缺點的,還是拉倒吧,這東西都是仁者見仁智者見智,最低現在我打算用它並且覺得還不錯,那就上路吧
框架這個東西還是得自己親自搭建,這樣知道哪裡會出現問題,下次不再犯就行了
目錄
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath /> </parent> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
引入jar後寫application.yml, spring: profiles: active: dev datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/springboot username: root password: root logging: file: mtgg.log level: debug mybatis: type-aliases-package: com.next mapper-locations: classpath:mapper/*.xml server: port:8080 這個配置還是要寫的,不寫會報錯找不到DataSource, 啟動類 @SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class,args); } } 注意啟動類放到業務層的同級或父級目錄中 這應該就能啟動了,在Application頁面右鍵啟動即可,訪問http://localhost:8080訪問index.html,hello baby
如果要經過API,直接寫一個ajax請求/first/one即可,
@RestController @RequestMapping("/first") public class AController { @Autowired private AliPayBean aliPayBean; @RequestMapping("/one") public String one() throws WxErrorException { System.out.println("hello baby"); System.out.println(aliPayBean.getAppId()); System.out.println(aliPayBean.getServerUrl()); System.out.println(aliPayBean.getDomain()); return "hello baby"; } @RequestMapping("/two") public String two(){ String str=String.valueOf(System.currentTimeMillis()); System.out.println(str); return str; } } 初步的搭建就不要複雜了,慢慢再加東西,這裡就是注意要寫datasource,springboot的一些註解還是需要好好理解一下
下面記錄一下如何發不到tomcat伺服器中
1、修改打包形式
再pom.xml中設定,<packaging>war</packaging>
2、移除嵌入式tomcat外掛
在pom.xml裡找到spring-boot-starter-web接點,修改為
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat外掛 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
這個時候HttpServletRequest和response會報錯,要新增servlet-api依賴 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
3、修改啟動類,重寫初始化方法 可以在原類Application中繼承SpringBootServletInitializer,也可以在類的同級新增一個SpringBootStartApplication類
/** * 修改啟動類,繼承 SpringBootServletInitializer 並重寫 configure 方法 */ public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意這裡要指向原先用main方法執行的Application啟動類 return builder.sources(Application.class); } }