基于 intellij IDEA 快速搭建Spring Boot项目

       在《一步步搭建 Spring Boot maven 框架的工程》一文中,已经介绍了如何使用Eclipse快速搭建Spring Boot项目。由于最近将开发工具由Eclipse转向了IDEA,在搭建Spring Boot项目时发现二者搭建流程不一样,因此,特记录下来搭建流程,方便日后查阅,也希望可以帮到初学者。在文末介绍如何读取application.properties文件的配置信息。
 
一.  在File-New-Module 页面 选择Spring initializr 
  
 
 
 
 
二. 在Type处选择: Maven Project(项目的构建工具)
 
 
 
三. 创建依赖时勾上web,mybatis,mysql
 
     此项是否勾选看个人需要吧,可以自主选择。Spring Boot版本默认选择最高稳定版。
 
 
    我自己并未勾选MySQL和MyBatis,上图为勾选后的效果。新建四个类East7Application、ConfigBean、 UserController和User
 
package com.east7;

import com.east7.bean.ConfigBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

/**
* @author east7
*/
@SpringBootApplication
@EnableConfigurationProperties({ConfigBean.class})
public class East7Application {

    public static void main(String[] args) {

        System.out.println("port : 8087");
        System.out.println("URL: http://localhost:8087/user/viewUser");
        SpringApplication.run(East7Application.class, args);
    }
}
      @EnableConfigurationProperties和@Value注解用于读取配置文件。
 
package com.east7.controller;

import com.east7.bean.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author east7
 */
@RestController
@RequestMapping("/user")
public class UserController {
    private static Logger logger = LoggerFactory.getLogger(UserController.class);
    
    @Value("${config.data.test}")
    private String configData;

    @Autowired
    private ConfigBean configBean;

    /**
     * 示例地址 http://localhost:8087/user/viewUser?ownerId=100
     *
     * @author east7
     * @date 2019/5/8 11:27
     */
    @RequestMapping("/viewUser")
    public User viewUser(Long ownerId) {
        logger.info("请求参数 ownerId = " + ownerId);
        User user = new User();
        user.setId(ownerId);
        user.setName(" --> Lucy");
        return user;
    }
    @RequestMapping("/readConfig")
    public User readConfig() {
       logger.info("请求参数 name = " + configData);
       User user = new User();
       user.setId(263L);
       user.setName(" --> " + configData);
       return user;
    }
    @RequestMapping("/readConfigSet")
    public User readConfigSet() {
       User user = new User();
       user.setId(269L);
       user.setName(configBean.getName() );
       user.setMsg(configBean.getWant());
       return user;
    }
}
package com.east7.bean;

import java.io.Serializable;

/**
* @author east7
*/
public class User implements Serializable {
    private static final long serialVersionUID = 6089103683553156328L;
    private Long id;
    private String name;
    private String msg;
    // omit getter, setter and toString
}
package com.east7.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
* @author east7
* 读取配置文件
*/
@ConfigurationProperties(prefix = "config.set")
public class ConfigBean {
    private String name;
    private String want;
    // omit getter, setter and toString
   
}

      搭建完成后,结构如下:

 
      相对应的pom.xml文件
 
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com</groupId>
    <artifactId>east7</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>east7</name>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>       
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
       
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
       这里使用配置文件application.properties,如果想更换其它端口,需要配置属性server.port。配置文件内容如下:
 
server.port=8087 
config.data.test=20000W

config.set.name="east7"
config.set.want="Hope you make progress in your study and work."

      启动项目

 

     使用postman验证服务:
 
 

读取应用配置

         可以在应用中读取application.properties文件,通过注解@Value("${config.name}")就可以将config.name绑定到你想要的属性上面。例如readConfig()。
  有时候配置属性太多,一个个绑定到属性字段上实在麻烦,官方提倡绑定一个对象的bean,通过以下三步完成:
  • 建一个ConfigBean.java类,在类上使用注解@ConfigurationProperties(prefix = "config.set")来指明读取哪些属性;
  • 在启动类加上@EnableConfigurationProperties并指明要加载哪个bean;
  • 在需要引用的地方引入ConfigBean使用即可。
       @ConfigurationProperties :把配置文件的信息,读取并自动封装成实体类,从而方便我们在代码里面使用。测试时成功取出配置文件中的数据,结果如下图所示:
 
Reference
 
 
posted @ 2019-07-07 21:56  楼兰胡杨  阅读(612)  评论(0编辑  收藏  举报