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

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

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

搭建一个简单的、基于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

原文地址:https://www.cnblogs.com/east7/p/10013140.html

时间: 2024-11-09 11:55:20

一步步搭建 Spring Boot maven 框架的工程的相关文章

Maven 搭建spring boot多模块项目

Maven 搭建spring boot多模块项目 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖 都写在根级`pom.xml`,子模块只需继承就可以使用. 1-3: 根级pom.xml文件在附录1 1-4: 依赖模块 mybatis spring-boot相关模块 2.创建子模块(module) 2-1: file

使用IDEA搭建Spring boot+Mybatis工程

简介:Spring boot只使用一个核心配置文件,取消了一系列xml配置,甚至连web.xml都没有,全部使用注解的方式完成WEB层的功能.框架内置Tomcat服务器,运行启动类中的Main函数即可启动. 下面就来搭建Spring boot+Mybatis工程 新建工程 勾上web,其他的不用 Finish 完善一下目录结构: 在pom.xml配置所有相关的依赖: 1 <?xml version="1.0" encoding="UTF-8"?> 2 &

使用IDEA搭建Spring Boot入门项目

简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. Spring Boot 的核心功能 独立运行的Spring 项目 Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot

Spring Boot Maven Plugin -- repackage目标

简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot 应用一起工作.总的有: spring-boot:repackage spring-boot:run spring-boot:start and spring-boot:stop spring-boot:build-info repackage:创建一个自动可执行的jar或war文件.它可以替换常规的

spring boot maven install时报错 Error creating bean with name &#39;serverEndpointExporter&#39;

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [com/pky/testmybatis/config/WebSocketConfig.class]: Invocation of init method failed; nested exception is j

【代码篇】从零开始一步步搭建自己的golang框架

前言 import cycle not allowed 不知道是不是有很多学习golang的新人会遇到这样的问题.包循环引用这个问题,让人很头疼,尤其是在项目越来越复杂的时候,出现这么一句报错,这意味着你可能需要修改很多代码,这对一个新人来讲压力很大.通常来讲,解决这个错误的办法是将需要引用的那个包抽象成接口,解耦后调用.但这不是我这个篇章想要讲的内容.这个系列主要讲的是如何从代码组织架构方面去避免这个问题.从零开始一步步搭建自己的golang框架.这个篇章将实现以下的功能: 一个通用的基础框架

JAVA开发血泪之路:一步步搭建spring框架

前言 作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,之前即使写web程序也宁愿使用jetty这样的嵌入式的web server实现,自己写servlet,总感觉从main函数开始都在自己的掌控范围之内,但是这样的方式的确有点原始,也看到各种各样的开源系统使用spring实现web服务,虽然代码总是能够看明白,但是还是不晓得一步步是怎么搭建的,于是抽出一个周末折腾折腾,不搞不知道,原来这玩意能把一个不熟悉的用

Maven手工搭建 Spring Boot工程

1.新建空的Maven项目. 2.修改pom.xml: 添加Spring Boot的父级依赖(spring - boot - starter - parent),这是一个特殊的starter,用于提供相关的Maven默认依赖 -- 这样的项目就是Spring Boot项目了.默认依赖,即版本默认,一些常用的依赖可以去掉<version>标签.至于Spring Boot提供了哪些jar包的依赖,以及版本默认为多少,可查看在本地仓库(前提是本地有)的 \org\springframework\bo

Maven工程搭建spring boot+spring mvc+JPA

添加Spring boot支持,引入相关包: 1.maven工程,少不了pom.xml,spring boot的引入可参考官网: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </paren