springboot搭建以及常用註解

Solitary_J發表於2017-04-24

springboot搭建以及常用註解

1. springboot執行環境

1.1. java環境

jdk7.0及其以上 
maven3.0+ 

1.2. 新增jar包依賴

新建maven web專案,在pom.xml中新增一下依賴

<!-- springboot begin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>1.5.2.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- springboot end -->

<!-- jdbc begin -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>

<dependency>    
    <groupId>com.oracle</groupId>    
    <artifactId>ojdbc14</artifactId>    
    <version>10.2.0.4.0</version>
</dependency>

<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
<!-- jdbc end -->

<!-- tomcat-jsp begin -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <version>8.5.6</version>
</dependency>

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!-- tomcat-jsp end -->  

2. springboot構建

2.1. 啟動類 (main方法啟動)

由於springboot啟動預設掃描啟動類同包及其子包,所以該啟動類需要放在所有包外。示例專案結構如下:

這裡寫圖片描述

package com.zhangjie.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**   
* @Description: 啟動類
*/
@SpringBootApplication 
public class Application {

public static void main(String[] args) {
    System.setProperty("server.port", "8080"); //do config springboot server port
    SpringApplication.run(Application.class, args);
  }
}  

啟動類上常用註解

註解名稱 註解說明
@SpringBootApplication 等價於以預設屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan
@Configuration 提到@Configuration就要提到他的搭檔@Bean。使用這兩個註解就可以建立一個簡單的spring配置類,可以用來替代相應的xml配置檔案
@EnableAutoConfiguration 能夠自動配置spring的上下文,試圖猜測和配置你想要的bean類,通常會自動根據你的類路徑和你的bean定義自動配置
@ComponentScan 會自動掃描指定包下的全部標有@Component的類,並註冊成bean,當然包括@Component下的子註解@Service,@Repository,@Controller

2.2. controller編寫

package com.zhangjie.springboot.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.zhangjie.springboot.domain.Account;
import com.zhangjie.springboot.service.UserService;

@Controller
@RequestMapping("/user")
public class UserController {

    @Resource(name = "userService")
    UserService userService;

    @RequestMapping(value="/getlist", method = RequestMethod.POST)
    @ResponseBody
    public List<Account> getlist(String id){
        return userService.getList();
    }

    /*@RequestMapping(value="/getlist/{id}", method = RequestMethod.POST)
    @ResponseBody
    public List<Account> getUserById(@PathVariable("id") String id){
        return userService.getList();
    }*/

    @RequestMapping(value = "/user.htm", method = RequestMethod.GET)
    public String getUserById(@RequestParam(value="id", required=false) String id){
        return "user";
    }

    @RequestMapping(value = "/login.htm", method = RequestMethod.GET)
    public String login(){
        return "login";
    }
} 

controller中常用註解

註解名稱 註解說明
@Controller @Controller用於標記在一個類上,使用它標記的類就是一個SpringMVC Controller物件。分發處理器將會掃描使用了該註解的類的方法。
@RestController 註解告訴Spring以字串的形式渲染結果,並直接返回給呼叫者;等價於@Controller+@ResponseBody;當要返回頁面時需用@Controller註解
@RequestMapping 是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑;該註解有六個屬性:1、params:指定request中必須包含某些引數值是,才讓該方法處理。2、headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求。3、value:指定請求的實際地址,指定的地址可以是URI Template 模式。4、method:指定請求的method型別, GET、POST、PUT、DELETE等。5、consumes:指定處理請求的提交內容型別(Content-Type),如application/json,text/html。6、produces:指定返回的內容型別,僅當request請求頭中的(Accept)型別中包含該指定型別才返回
@RequestParam 用在方法的引數前面,相當於request.getParameter(“”)
@PathVariable 路徑變數

2.3. ajax呼叫

與普通ajax呼叫一樣

<script type="text/javascript">
$(function(){
    $.ajax({
        url:"localhost:8080/user/getlist",
        type:"POST",
        dataType:"json",
        success:function(data){
            console.log(data);
        }
    })
})
</script>  

啟動專案,訪問http://localhost:8080/user/login.htm,即可跳轉到login.jsp頁面;在jsp中寫入上JavaScript程式碼呼叫post方法,即可訪問controller中getlist方法,後臺讀取資料整合了mybatis這裡未貼出程式碼。

這裡寫圖片描述

相關文章