Spring Boot-(1)先跑起来

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

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

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

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

1.新建一个maven工程。

<groupId>com.spring.lw</groupId>
<artifactId>Towns</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

2.引入jar包:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

最好能指定一下JDK的版本

<build>
    <plugins>
        <!-- compiler插件, 设定JDK版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
                <showWarnings>true</showWarnings>
            </configuration>
        </plugin>
    </plugins>
</build>

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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容