Spring Boot-(1)先跑起来

最好的参考文档: Spring boot的官方文档

最近在跟进一个项目,用的是Spring Cloud一套的东西,一些东西研究起来比较吃力,还是对一些基础的知识了解的不够深入,比如Spring Boot,所以干脆重新研究一遍。

用比较Low的方式新建这个项目,高大上点儿的话可以使用https://start.spring.io/来创建项目,先还是使用手动创建的方式。

其实直接参考官方的Quick Start即可.

1.新建一个maven工程。

com.spring.lw
Towns
0.0.1-SNAPSHOT
jar

2.引入jar包:


    org.springframework.boot
    spring-boot-starter-parent
    1.5.8.RELEASE


    
        org.springframework.boot
        spring-boot-starter-web
    

最好能指定一下JDK的版本


    
        
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.1
            
                1.8
                1.8
                UTF-8
                true
            
        
    

3.增加一些包路径,目前工程的目录结构为:

Spring Boot-(1)先跑起来_第1张图片
image.png

4.增加TownsApplication.java,这个是Spring boot的入口:

package com.spring.lw.Towns;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication  
//same as @Configuration @EnableAutoConfiguration @ComponentScan
public class TownsApplication {
    public static void main( String[] args ){
        SpringApplication.run(TownsApplication.class, args);
    }
}

5.实体类:

package com.spring.lw.Towns.vo;

import lombok.Data;

@Data
public class User {
    private int id;
    
    private String username;
    
    private String password;
    
    private String managecom ;
    
    public String toString(){
        return "id = " + id 
                + " , username = " + username 
                + ", password = " + password  
                + ", managecom = " + managecom ;
    }
}

6.暴露对外的Rest接口:

package com.spring.lw.Towns.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.spring.lw.Towns.vo.User;

@RestController
@RequestMapping(value="/user")
public class UserController {
    
    @RequestMapping(value="/get")
    public User getUser(){
        User user = new User();
        user.setUsername("Towns");
        user.setManagecom("US");
        user.setPassword("123456");
        user.setId(10001);
        
        return user ;
    }
}

7.TownsApplication.java-->run as Java Application,运行后浏览器可以访问:

http://10.136.19.170:8080/user/get

浏览器返回:{"id":10001,"username":"Towns","password":"123456","managecom":"US"}

知识点(抄的官方文档,加上自己的理解和翻译):

  1. @RestController and @RequestMapping annotations
  • 这两个是Spring MVC的annotations,在Spring Boot中没有特殊的含义。
  • 在上面的例子中,UserController加上了@RestController注解,那么Spring会把这个类去处理Web请求。
  • @RequestMapping提供了一个路由的信息,它告诉Spring,当有[/user]请求的时候,交给这个类进行处理。
  1. @EnableAutoConfiguration annotation
  • 其实上面的例子中没有使用 @EnableAutoConfiguration,在TownsApplication中使用的是@SpringBootApplication。实际上在官网的Quick Start中使用的是@EnableAutoConfiguration。
  • @EnableAutoConfiguration 告诉Spring Boot去“猜测”你想如何配置Spring。当你引入了spring-boot-starter-web的时候,这个自动化的配置就会确认你开发的是一个Web项目,那么Spring Boot会对Tomcat和Spring MVC进行自动配置。
  • Spring Boot会扫描@EnableAutoConfiguration所在类的同级包以及下级包中的Bean,也也是为什么入口类要放在最外层的原因。
  • @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan

你可能感兴趣的:(Spring Boot-(1)先跑起来)