構建spingboot項目
1、構建 Spring Boot 項目,事實上建立的就是一個 Maven 項目
2、使用idea/eclipse工具構建一個maven項目
3、修改maven項目的pom文件:
1)、在 pom.xml 中添加 Spring Boot 相關的父級依賴, spring-boot-starter-parent 是一個特殊的starter:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>
注意:這裏要使用的版本是:2.0.6.RELEASE,現在官網上的版本是2.1.4.RELEASE,如果使用官網上的版本,則在啓動類中不能使用**@SpringBootApplication**註解
2)、在pom文件中添加Web 項目相關的依賴:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3)、這一點是可選的,如果需要將springboot項目打成jar包運行,則需要添加下面的插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
4、構建springboot的啓動類:
package com.dss.springboot;
@SpringBootApplication
public class HelloMainApplication {
public static void main(String[] args) {
SpringApplication.run(HelloMainApplication.class, args);
}
}
5、構建一個Controller類
package com.dss.springboot.controller;
@Controller
public class HelloController {
@RequestMapping(value="/hello", method=RequestMethod.GET)
@ResponseBody
public String hello() {
return "hello world...";
}
}
6、啓動springboot項目:
1)、直接運行HelloMainApplication類中的main方法,即可啓動springboot項目,啓動之後,可在 控制檯 看到啓動日誌:
可以看到項目啓動的端口是8080,因爲springboot啓動是通過內置的tomcat啓動的,此時在瀏覽器訪問:localhost:8080/hello ,即可訪問成功
2)、通過maven package指令打包項目,再運行java -jar xxxxx.jar 也可以啓動spingboot項目
SpingBoot項目底層原理簡單分析
1、pom文件分析:
<!--
spring-boot-starter-parent: 是當前項目的父依賴
spring-boot-starter-parent 項目繼承了spring-boot-dependencies 項目
spring-boot-dependencies 項目中主要定義了很多的組件版本,所以我們在引用對應的依賴時,不需要指定<version>
-->
<!-- 使用springboot的版本:2.0.6.RELEASE -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>
<!--
spring-boot-starter-web 分爲兩部分:
spring-boot-starter :他是springboot的場景啓動器,它針對不同的場景定義了不同的場景啓動器
spring-boot-starter-web:就是springboot衆多啓動器中的web啓動器,功能是構建web項目,通過這個啓動器可以引入 tomcat、springmvc等等
項目需要哪些場景啓動器,只需要直接依賴對應的啓動器就ok:例如:需要單元測試,則引入 spring-boot-start-test
-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2、啓動類分析:
/**
* @SpringBootApplication用於表示一個引導類,說明 當前是一個 springboot 項目
* 該註解主要由三個註解組成:
* @SpringBootConfiguration (這個註解的組成如下:通過這個註解,表示將當前類添加到spring容器中,它是一個組件,並且它是sping的一個配置類)
* @Configuration 它屬於spring底層的一個註解,用於定義配置類,等價於spring的xml配置文件
* @Component 它用於將該註解表明的類添加到spring容器中,表示 是一個組件
*
* @EnableAutoConfiguration
* @AutoConfigurationPackage 將引導類所在包 及子包下面所有的組件添加 到spring 容器中
* @Import(AutoConfigurationImportSelector.class)
* 1、將所有的組件 以 全類名 的方式放回,並且添加到 spring 容器中
* 2、會向 spring 容器中導入非常多的 自動配置類 ,這些配置類都是spring 定義好的,省去我們手動編寫 配置文件中的bean標籤來注入組件
*
* @ComponentScan
* 被該註解標識的類會被 spring 容器進行管理
*
* 注意:spring項目在啓動時,會以引導類所在的包爲基準,將所有子包下面的組件掃描到spring容器中,所以,引導類要定義在package的最上層
* @author asong
*
*
*/
@SpringBootApplication
public class HelloMainApplication {
public static void main(String[] args) {
SpringApplication.run(HelloMainApplication.class, args);
}
}