www6662016com-I8669I44445項目開發原來可以這麼方便

SpringBoot入門之工程搭建(IDEA版)

Spring-Boot Spring的春天

在之前我們一直使用Spring、SpringMVC進行開發,的確,Spring讓我們認識到了項目開發原來可以這麼方便。但是大量的配置文件卻是令人頭痛的,即使我們想寫一個簡單的請求映射並在瀏覽器上發送Get請求測試,那麼需要:1.在web.xml中配置DispatcherServlet; 2.在application.xml中配置註解掃描、註解驅動。可以看到:雖然Spring是輕量級的,但是Spring的配置卻是重量級的。並且搭建每個Spring項目我們都需要考慮依賴版本是否衝突的問題...

So,SpringBoot將這一切都解決了。SpringBoot提供了一種固定的、約定優於配置風格的框架,讓開發者能更快的創建基於Spring的應用程序和服務。

對應的SpringBoot整合Mybatis實現CRUD的項目和筆記請看我的Github倉庫:教你優雅的入門Spring Boot框架

如果覺得不錯就點擊右上角star鼓勵一下筆者吧(#^.^#)

SpringBoot有如下特性:

更高效的創建基於Spring的應用服務
無需XML配置,可以修改默認值來滿足特定的需求
提供了一些大型項目中常見的非功能性特性,如嵌入式服務器、安全...
Spring Boot並不是對Spring功能上的增強,而是提供了一種快速使用Spring的方式
SpringBoot項目搭建

這裏我選擇使用IDEA來創建SpringBoot項目:
1.選擇Spring Initializr,並選擇本地的JDK版本
www6662016com-I8669I44445項目開發原來可以這麼方便
2.Next,指定Group和Artifact名稱,並選擇本機JDK版本
3.www6662016com-I8669I44445項目開發原來可以這麼方便
3.選擇項目所需依賴
www6662016com-I8669I44445項目開發原來可以這麼方便
解釋

devtools: SpringBoot提供的熱部署插件,可以避免每次修改代碼都要重新啓動項目。。

lomback: 使用Lomback可以減少項目中很多重複代碼的書寫,比如getter/setter/toString等方法的書寫(雖然這些可能我們都是用的快捷鍵生成的代碼)。具體用法可以參考博文:lomback介紹

Thymeleaf: 語法的支持

注意: 以上依賴非必選,如果僅僅想嘗試一下Spring Boot-HelloWorld,只需要選擇其中的web依賴即可。

<br/>

SpringBoot起步
www6662016com-I8669I44445項目開發原來可以這麼方便
以上是新創建的Spring Boot項目。在SpringBoot中有一個啓動器(引導類)的概念,我們首先看一下SpringbootApplication.java:

@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
如上,僅是一個簡單的main方法,其中最核心的就是@SpringBootApplication註解,它是一下三個註解的總和:

@Configuration: 用於定義一個配置類。
@EnableAutoConfiguration: SpringBoot會自動根據你的jar包依賴來自動配置項目。
@ComponentSacn: 告訴Spring哪個packages的用註解標識的類會被Spring自動掃描並且轉入Bean容器。
通過以上三個註解你就應該瞭解到了SpringBoot的作用:自動化配置項目。之前我們要手動進行的XML配置在這裏僅需要這一個註解就完成了。且SpringBoot項目不需要單獨部署到Tomcat中才能啓動,通過這個啓動器,SpringBoot會自動構建一個web容器,並將項目部署到其中。

So,

Run SpringBootApplication
www6662016com-I8669I44445項目開發原來可以這麼方便
發現報錯,說DataSource數據源的url地址沒有配置。之前我們提到了SpringBoot的特性就是自動化配置,它會根據你的依賴文件來配置項目,我們再看一下我們的pom.xml:
www6662016com-I8669I44445項目開發原來可以這麼方便
其中最上層的<parent>節點約束了整個下面所有spring-boot依賴的版本,即這裏使用了SpringBoot-2.0.5。然後關注<dependencies>節點下的前四個依賴:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
Spring Boot應用啓動器

spring-boot-starter: Spring Boot的核心啓動器,包含了自動配置、日誌和YAML。

spring-boot-starter-jdbc: 支持JDBC數據庫。

spring-boot-starter-thymeleaf: 支持Thymeleaf模板引擎,包括與Spring的集成。

spring-boot-starter-web: 支持全棧式開發,包括Tomcat和Spring-WebMVC。

mybatis-spring-boot-starter: 整合spring-mybatis依賴。

前面我們強調的一點是Spring Boot能實現自動化配置,那麼項目的依賴就決定了Spring Boot將如何自動配置項目,Spring Boot的啓動器就決定了項目會以什麼樣的配置啓動項目;如此,我們會明白這個報錯是爲什麼了。

因爲我們配置配置JDBC連接的數據庫,所以報錯,註釋掉spring-boot-starter-jdbc和mybatis-spring-boot-starter依賴,再次啓動SpringBootApplication:
www6662016com-I8669I44445項目開發原來可以這麼方便
啓動成功。

測試

在src/main/java/cn/tycoding/springboot/下創建controller文件夾並創建LoginController.java類:

@RestController
public class LoginController {br/>@RequestMapping("/login")
public String login(@RequestParam("username") String username, @RequestParam("password") String password) {
System.out.println("username:" + username + ", password:" + password);
return null;
}
}
如上就完成了在SSM階段一個最基本的SpringMVC Controller映射方法的書寫,那麼測試一下:

在瀏覽器上訪問:

localhost:8080/login?username=tycoding&password=123
後端即可接收到username和password參數。

這時你會發現,SpringBoot內置的Web容器默認訪問地址就是8080端口,如果想改變這個默認端口,修改src/main/resources/application.properties:

server.port=8088
重啓SpringbootApplication,訪問:localhost:8088/login?username=tycoding&password=123

讀取配置文件信息

在src/main/resources/application.properties中添加配置:

url=http://www.tycoding.cn
在LoginController.java中添加映射方法:

@RestController
public class LoginController {br/>@Autowired
private Environment environment;
br/>@RequestMapping("/blog")
public String login(){
return environment.getProperty("url");
}
}
Spring提供的Environment類用戶讀取配置文件中參數,訪問:localhost:8088/blog即可得到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章