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

                                                                                 初識springboot 以及基本項目搭建java

       因爲新的項目須要搭建後臺框架,以前的springmvc架構也使用屢次,在我印象中springboot的微服務架構更輕量級更容易搭建,因此想去試試springboot的項目搭建,接下來,和你們分享一下初識springboot後對springboot的理解以及springboot的搭建過程
web

一.什麼是springboot?爲何要使用springboot?spring

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

  springboot就是spring以及springmvc的衍生,是「懶人工具包」
編程

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

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

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

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

說得更簡便一些: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框架就算搭建完成了。

相關文章
相關標籤/搜索