• 一步步搭建 Spring Boot maven 框架的工程


    摘要:让Spring应用从配置到运行更加快速,演示DIY Spring Boot 框架时,如何配置端口号,如何添加日志。

    Spring Boot 框架帮助开发者更容易地创建基于Spring的应用程序和服务,使得开发者能够快速地获得所需要的Spring功能。 提供了非功能性的大型项目类特性,如(如内嵌服务器、安全、度量、健康检查、外部化配置),内部封装了tomcat的一些核心jar包,将发布封装了,因此不需要将项目(war包)发布到外部tomcat上。

      可以在Spring Boot官网 https://start.spring.io/ 快速构建项目,这个简单易用,而且会自动生成启动类。本文重点介绍如何使用Eclipse构建。

    搭建一个简单的、基于Restfull 风格的Spring web mvc 项目,结构如下:

    环境

    eclipse:Oxygen Release (4.7.0);java version :"1.8.0_77";

    maven:3.5.4;Servlet3容器(tomcat)

    1.       配置maven的settings.xml

    配置文件中加入了阿里巴巴的镜像。

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- 仓库的地址-->
    <localRepository>E:/MyLibs</localRepository>
    <pluginGroups>
    
    </pluginGroups>
    <proxies>
    
    </proxies>
    <servers>
    
    </servers>
    <mirrors>
        <mirror>
            <id>alimaven-central</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
        <mirror>
            <id>jboss-public-repository-group</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <profiles>
    </profiles>
    </settings>
    2. Eclipse配置Maven

    Maven配置如下图所示,如果已经配置,可以忽略此步。

    3. 创建maven项目

      new-->other-->maven-->Maven Project-->next-->finsh,maven项目就建好了。

     

     

     包名和项目名根据需求自定义。

    4.       配置pom文件
    <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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
      </parent>
      <groupId>com.spring.boot</groupId>
      <artifactId>TestWebApp</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
      <name>TestWebApp</name>
      <url>http://maven.apache.org</url>
      <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <scope>test</scope>
        </dependency>
        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
               <exclusion>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-logging</artifactId>
               </exclusion>
            </exclusions>
        </dependency>
        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        
      </dependencies>
      <build>
        <plugins>
        <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        </plugins>
      </build>
    </project>
    5. 添加日志

    项目使用了log4j2打印日志。首先,在src/main目录下新增文件夹resources,然后,在resources下创建log4j2.xml。这个日志配置比较简单,有待优化。

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
                <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
            </Console>
            <File name="log" fileName="log/webApp.log" append="false">
                <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
            </File>
            <RollingFile name="RollingFile" fileName="log/webAppRoll.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log">
                <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
                <SizeBasedTriggeringPolicy size="50MB" />
            </RollingFile>
        </appenders>
        <loggers>
            <root level="INFO">
                <appender-ref ref="RollingFile" />
                <appender-ref ref="Console" />
            </root>
        </loggers>
    </configuration>
    6.    设置端口号

    在resources下创建application.properties。

     

    1. 编写测试代码

     javaBean定义如下,包括用户ID和用户名。 

    import java.io.Serializable;
    public class User implements Serializable {
        private static final long serialVersionUID = 7797704227043955944L;
       
        private Long id;
        private String name;
        //    getter/setter omitted
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + "]";
        }
    }

    控制器代码: 

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    @RestController
    @RequestMapping("/user")
    public class UserController {
        private static Logger logger = LoggerFactory.getLogger(UserController.class);
        /**
         * @Title view<br/>
         * @Description 示例地址 http://localhost:8080/user/100 <br/>
         * @param id
         * @return
         * @Author 楼兰的胡杨<br/>
         * @Time 2018-08-26 11:47<br/>
         */
        @RequestMapping("/{id}")
        public User view(@PathVariable("id") Long id) {
            logger.info("接收的请求参数 begin --- id = {}", id);
            User user = new User();
            user.setId(id);
            user.setName("Spring Boot");
            return user;
        }
    }

    通过在UserController中加上@RequestMapping 配置请求路径。通过在main方法中运行SpringApplication.run()来启动项目: 

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class Application {   
        public static void main(String[] args) {
            SpringApplication.run(Application.class);
        }
    }

    这时候项目就可以运行了,在Application 中run as-->java application 。控制台打印结果:

     

    截图中红色方框圈中的文字说明了系统启动成功,而且,端口号是8080。此时在浏览器输入http://localhost:8080/user/100  即可看到页面效果:

     

    控制台打印结果:

     

    参考文献 https://www.cnblogs.com/qinbb/articles/5762081.html

  • 相关阅读:
    Hadoop学习入门
    node.js学习一——什么是node.js
    判断投递失败原因方法
    MySQL慢查询(一)
    jmeter5.1.1 打印OOM的问题
    Jmeter ForEach Controler、IF Controller、switch Controller
    Jmeter5.1.1 NON GUI下线程数可传参
    在JMeter压测 控制交易占比
    Linux下安装配置Jmeter5.1, 并执行jmx文件
    jmeter 生成报告 --- 如果已经生成jtl文件,可运行如下命令:jmeter -g test.jtl -o ./output
  • 原文地址:https://www.cnblogs.com/east7/p/10013140.html
Copyright © 2020-2023  润新知