springboot系列二、springboot项目搭建

一、maven构建项目

  • 1、访问http://start.spring.io/
  • 2、选择构建工具Maven Project、Spring Boot版本2.1.1以及一些工程基本信息,可参考下图所示:
  • 3、点击Generate Project下载项目压缩包
  • 4、解压后,使用idea,File -> new -> Project from existing sources ->demo中的pom.xml-> Finsh,OK done!

Spring Boot的基础结构共三个文件:

  • src/main/java 程序开发以及主程序入口
  • src/main/resources 配置文件
  • src/test/java 测试程序

采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改
最后,启动Application main方法,至此一个java项目搭建好了!

二、引入web模块

1、pom.xml中添加支持web的模块:

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

pom.xml文件中默认有两个模块:

spring-boot-starter :核心模块,包括自动配置支持、日志和YAML;

spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito。

2、编写controller内容:

@RestController
public class HelloWorldController {
    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }
}

@RestController 的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!

3、启动主程序

  打开浏览器访问http://localhost:8080/hello,就可以看到效果了,有木有很简单!

4、修改端口号

  • 使用properties文件方式:

  在src/main/resoutces目录下创建:application.properties,添加如下配置即可修改端口号:

server.port=8088
  • 使用yml文件方式:

  在src/main/resoutces目录下创建:application.yml,添加如下配置即可修改端口号:

server:
  port:8088

5、修改项目访问路径

使用properties文件方式:
在application.properties,添加如下配置即可修改项目访问路径:

server.context-path=/springboot-demo
  • 使用yml文件方式:

在application.yml,追加如下配置即可修改项目访问路径:

server:
  port:8088
  context-path:/springboot-demo

三、如何做单元测试

打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。

package com.example.demo;

import com.example.demo.controller.HelloWorldController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.hamcrest.core.IsEqual.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    private MockMvc mvc;

    @Before
    public void setUp(){
        mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
    }

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }
}

四、热部署配置

热启动在正常开发项目中已经很常见了吧,虽然平时开发web项目过程中,改动项目启重启总是报错;但springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
</plugins>
</build>

该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。

使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。

原文地址:https://www.cnblogs.com/wangzhuxing/p/10128113.html

时间: 2024-11-07 10:53:41

springboot系列二、springboot项目搭建的相关文章

SpringBoot系列二:搭建自己的第一个SpringBoot程序

一.根据官网手工搭建(http://projects.spring.io/spring-boot/#quick-start) 1.新建一个maven工程springbootfirst 2. 如果要想开发 SpringBoot 程序只需要按照官方给出的要求配置一个父 pom (spring-boot-starter-parent)和添加web开发的支持(spring-boot-starter-web)即可. 1 <project xmlns="http://maven.apache.org/

从零开始搭建自己的前后端分离【 .NET Core2.0 Api + Vue 2.0 】框架之二 || 后端项目搭建

WHY 至于为什么要搭建.Net Core 平台,这个网上的解释以及铺天盖地,想了想,还是感觉重要的一点,跨平台,嗯!没错,而且比.Net 更容易搭建,速度也更快,所有的包均有Nuget提供,不再像以前的单纯引入组件,比如是这样的: 已经没有了之前的Assemblies和COM的引入,初次使用感觉会很别扭,不过使用多了,发现还是很方便的,所以你一定要会使用Nuget,真的很强大,这点儿设计思路感觉更像Linux了. HOW 说了从零开始,就得从零开始,老生常谈,开始. 当然,前提是你得安装.Ne

vue2+vuex+vue-router 快速入门(二) 项目搭建

安装 我们可以通过两种方式把 vue 引入到我们的项目中,一种直接通过 <script> 引入 ,这时 vue 会被注册为一个全局变量.第二种便是通过 npm 进行安装,这种方式可以很好的配合 webpack 或 browserify 模块打包器使用.我们的项目使用 webpack 进行打包. 项目搭建 在经过简短的考虑之后,我们决定使用 npm 管理项目依赖,webpack 进行项目打包.js 遵循 es6 规则,采用 babel 进行转换.less 管理 css 样式.vue 提供了一个官

SpringBoot与Dubbo整合-项目搭建

本章节建立生产者和消费者来演示dubbo的demo 生产者:springboot-dubbo-provider 和 消费者:springboot-dubbo-consumer 工程配置详解 GitHub 上代码: https://github.com/JeffLi1993/springboot-learning-example. springboot-dubbo-provider: 1.pom.xml导入依赖 : pom.xml 中依赖了 spring-boot-starter-dubbo 工程

SpringBoot系列——快速构建项目

前言 springboot官方参考指南:https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/ Spring Boot是由spring家族提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用“约定大于配置”思想进行了许多默认配置,从而使开发人员简化配置.快速构建项目.愉快开发. 特性 1.创建独立的Spring应用程序     2.直接嵌入Tomcat.Jetty或

Springboot系列之Springboot与Mybatis整合

前言 技术博客那么多,为什么自己整理呢?太过零散的知识点不易记忆,且查找的时候也不是太方便,眼过千遍不如手过一遍的操作一遍,即使Springboot已经很好的整合了各项的技术框架,但实际操作的时候也会发现一些问题.我会将可能出现的问题记录一下,博文时刻更新. 预备知识: Springboot 2.0.6 Mybatis 3.4.6 Maven 3.5.3 Lomlok 1.16.18(可以参考:lombok 简化 Java 代码) Mysql 5.1.47 代码地址: 博文只是列举核心操作步骤,

DVWA系列(二)----DVWA环境搭建

一.下载源码 DVWA使用PHP写的,所以首先需要搭建web运行环境,我这里使用的是phpStudy,phpStudy使用起来方便快捷,直接点击安装程序,点几下就安装好了. 首先进入官网下载源码:http://www.dvwa.co.uk/ 或者可以进入github下载: https://github.com/ethicalhack3r/DVWA   二.安装 下载好之后解压,把源码复制到WWW目录 然后进入DVWA,打开config目录里的config.inc.php 修改数据库账号密码 然后

Vue开发系列二 熟悉项目结构

初始项目结构如上所示.src:  写代码地方,我们大部分的操作都在此 static :资源目录 static目录下还可以放一些第三方的js库,通用的css等,这样每次打包的时候节省打包时间 原文地址:https://www.cnblogs.com/menchao/p/8425749.html

spring boot项目搭建中遇到的问题

自己动手搭建一下spring boot的项目,中途遇到了几个问题,在这里记录一下! 一.关于数据库中的表设计的问题 1.设计表的时候一定要添加的两个字段created updated 创建时间与更新时间 这两个字段是必须的2.数据库的表字段设计一定要规范,因为如果使用分页助手的话,你的表字段设计不规范,会存在很多问题比如:我的book_info 表中的字段 有一个是pubInfo 驼峰命名法,但是其他的是book_name.img_url 下划线命名法,造成使用通用mapper以及分页助手的时候