springboot(一).初識springboot以及基本項目搭建


                                                                                 初識springboot 以及基本項目搭建

       由於新的項目需要搭建后台框架,之前的springmvc架構也使用多次,在我印象中springboot的微服務架構更輕量級更容易搭建,所以想去試試springboot的項目搭建,接下來,和大家分享一下初識springboot后對springboot的理解以及springboot的搭建過程

一.什么是springboot?為什么要使用springboot?

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。在我看來,

  springboot就是spring以及springmvc的衍生,是“懶人工具包”

     spring boot只是一個配置工具,整合工具,輔助工具.

  springboot 最大化的實現了convention over configuration(約定大於配置)

Spring 框架就像一個家族,有眾多衍生產品例如 boot、security、jpa等等。但他們的基礎都是Spring 的ioc和 aop. ioc提供了依賴注入的容器, aop解決了面向橫切面的編程,然后在此兩者的基礎上實現了其他延伸產品的高級功能。

Spring MVC是基於Servlet 的一個 MVC 框架主要解決 WEB 開發的問題,因為 Spring 的配置非常復雜,各種XML、 JavaConfig、hin處理起來比較繁瑣。於是為了簡化開發者的使用,從而創造性地推出了Spring boot,約定優於配置,簡化了spring的配置流程。

說得更簡便一些:Spring 最初利用“工廠模式”(DI)和“代理模式”(AOP)解耦應用組件。大家覺得挺好用,於是按照這種模式搞了一個 MVC框架(一些用Spring 解耦的組件),用開發 web 應用( SpringMVC )。然后發現每次開發都寫很多樣板代碼,為了簡化工作流程,於是開發出了一些“懶人整合包”(starter),這套就是 Spring Boot。

總結一下springboot的優點:

(1). 遵循"約定優於配置"原則,使用Spirng Boot只需很少的配置,大部分時候可以使用默認配置;

(2)   項目快速搭建,另外還可以無配置整合第三方框架;

(3) 簡化Maven及Gradle配置

(4)   內嵌入Servlet如Tomcat、jetty容器,應用可用jar包運行(java -jar);

(5) 可完全不使用xml配置,只使用自動配置和Java Config;

(6) 有多種強大的開發包,支持熱啟動 

spring-boot-starter-web:支持全棧web開發,里面包括了Tomcat和Spring-webmvc。

spring-boot-starter-mail:提供對javax.mail的支持.

spring-boot-starter-ws: 提供對Spring Web Services的支持

spring-boot-starter-test:提供對常用測試框架的支持,包括JUnit,Hamcrest以及Mockito等。

spring-boot-starter-actuator:支持產品環境下的一些功能,比如指標度量及監控等。

spring-boot-starter-jetty:支持jetty容器。

spring-boot-starter-log4j:引入默認的log框架(logback) 

了解了springboot的概念和優勢之后,讓我們來試一下如何在短短幾分鍾內搭建springboot項目

 

二. springboot項目搭建

1.新建maven應用(在idea下新建maven應用)

 

2.新建maven應用之后,開始配置pom.xml然后import。

在pom中添加以下配置

 1 <!-- Spring boot 父引用-->
 2     <parent>
 3         <groupId>org.springframework.boot</groupId>
 4         <artifactId>spring-boot-starter-parent</artifactId>
 5         <version>1.4.0.RELEASE</version>
 6     </parent>
 7 
 8     <!-- Spring boot 核心web-->
 9     <dependencies>
10         <dependency>
11             <groupId>org.springframework.boot</groupId>
12             <artifactId>spring-boot-starter-web</artifactId>
13         </dependency>
14     </dependencies>

3. 然后我們新建controller  

UserController

@RestController
public class UserController {

    //日志
    private final Logger log = LoggerFactory.getLogger(UserController.class);


    @Autowired//自動注入,可以直接省略掉set和get,它會幫我們set和get
    private UserService userService;

    @RequestMapping("/getUser")
    public User getUser() {
        return userService.getUser();
    }
    @RequestMapping(value="/addUser")
    public int addUser() {
    	List<User> users = new ArrayList<User>();
        User user = new User();
        user.setId(2);
        user.setPassword("32131");
        user.setUsername("薩達");
    	users.add(user);
        log.info("我的用戶名是"+user.getUsername()+"我的密碼是"+user.getPassword());
        return userService.addUserWithBackId(users);
    }
}

這里我的接口調用了service和數據庫,大家在寫這個controller的時候先隨便返回一下,如system.out等。

4.我們在包的最外層增加新的應用啟動入口 —> Application

/**
* @EnableAutoConfiguration:spring boot的注解,一般只用於主類,
* 是無xml配置啟動的關鍵部分,明確指定了掃描包的路徑為其修飾的主類的包(這也就是為什么主類要放在根包路徑下的原因)
* 
* @ComponentScan 進行包的掃描,掃描路徑由@EnableAutoConfiguration指定了
* 
* 主類要位於根包路徑下,方便之后的掃描(We generally recommend that you locate your main application class in a root package above other classes.)
* 
    主類要位於根包路徑下(例如,com.xxx.firstboot),這是推薦做法,方便掃描
    每一個jar(即每一個子項目)都要有一個主方法,用於啟動該jar(也就是一個微服務)
    在主類上添加注解@SpringBootApplication,該注解相當於添加了如下三個注解
        @Configuration:該注解指明該類由spring容器管理
        @EnableAutoConfiguration:該注解是無xml配置啟動的關鍵部分
        @ComponentScan:該注解指定掃描包(如果主類不是位於根路徑下,這里需要指定掃描路徑),類似於spring的包掃描注解

*/
//same as @Configuration+@EnableAutoConfiguration+@ComponentScan
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class})
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class,
args); } }

關於@SpringBootApplication注解的用法在注釋中有說明

此時,項目的結構如圖所示:

啟動應用后訪問http://localhost:8080/get

{"id":1,"username":"yangheng","password":"123"}

到此,基本的springboot框架就算搭建完成了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM