springBoot(1):工程的创建、运行、打包发布

简介:

一、环境要求

1、JDK:1.8+

2、maven:3.0.5+

二、创建工程

使用Spring Initializr新建项目,注意Initializr Service URL必须为https://start.spring.io

wKioL1k4yrCD2GT5AAEG7OZUdI4015.png

2.1、选择类型

上面Next后,注意Type为Maven Project,Java Version为1.8,Packaging为Jar.

wKiom1k4y0CBHqKKAACKtZsdlFo925.png

2.2、选择Spring Boot版本和组件

选择Spring Boot版本和spring boot组件

wKioL1k40m-heYEPAAE7vRpxxxY595.png

2.3、输入项目名称

这里使用demo作为名字

wKioL1k49D2ivJsQAAEEPkr9De8267.jpg

三、java代码

3.1、新建启动类Application.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package  com.example;
 
import  org.springframework.boot.SpringApplication;
import  org.springframework.boot.autoconfigure.SpringBootApplication;
 
/**
  * Created by ly on 2017/6/8.
  */
@SpringBootApplication
public  class  Application {
     public  static  void  main(String[] args) {
       SpringApplication.run(Application. class , args);
   }
}

3.2、新建IndexController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package  com.example.controller;
 
import  org.springframework.web.bind.annotation.GetMapping;
import  org.springframework.web.bind.annotation.RestController;
 
/**
  * Created by ly on 2017/6/8.
  */
@RestController
public  class  IndexController {
     @RequestMapping
     public  String index() {
         return  "hello world" ;
     }
 
     @RequestMapping (value =  "get" )
     public  Map<String, String> get( @RequestParam  String name) {
         Map<String, String> map =  new  HashMap<String, String>();
         map.put(name,  "hello world" );
         return  map;
     }
 
     @RequestMapping (value =  "find/{id}/{name}" )
     public  User find( @PathVariable  Long id,  @PathVariable  String name) {
         User user =  new  User();
         user.setId(id);
         user.setName(name);
         user.setDate( new  Date());
         return  user;
     }
}

注意:要将启动类放在最外层,也就是要包含所有子包。

 比如你的groupId是com.google,子包就是所谓的com.google.xxx,所以要将Application类要放在com.google包下。

springboot会自动加载启动类所在包下及其子包下的所有组件.


四、启动并测试

在启动类中,右击-->执行 即可。

测试:在浏览器中输入http://localhost:8080/index 

效果:

  wKiom1k7XJDRZbmnAAAZbUFC14s856.jpg

 wKiom1k7XMGCs5GcAAAgPr_Ku1A494.jpg


 wKioL1k7XHfj_4ChAAAigIWN_oo914.jpg

注意:默认是8080端口,这里我配置成80端口了,后面有讲到。


JUnit测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package  com.roncoo.example;
 
import  com.roncoo.example.controller.IndexController;
import  org.junit.Before;
import  org.junit.Test;
import  org.junit.runner.RunWith;
import  org.springframework.boot.test.context.SpringBootTest;
import  org.springframework.test.context.junit4.SpringRunner;
import  org.springframework.test.web.servlet.MockMvc;
import  org.springframework.test.web.servlet.RequestBuilder;
import  org.springframework.test.web.servlet.setup.MockMvcBuilders;
 
import  static  org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
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  SpringBootDemo21ApplicationTests {
 
    private  MockMvc mvc;
    @Before
    public  void  befor() {
       this .mvc = MockMvcBuilders.standaloneSetup( new  IndexController()).build();
    }
 
    @Test
    public  void  contextLoads()  throws  Exception {
       RequestBuilder req = get( "/index" );
       mvc.perform(req).andExpect(status().isOk()).andExpect(content().string( "hello world" ));
    }
}


五、打包发布

5.1、添加打包插件:spring-boot-maven-plugin,并添加<packaging>jar</packaging>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<? 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.example</ groupId >
    < artifactId >demo</ artifactId >
    < version >0.0.1-SNAPSHOT</ version >
    < 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 >1.5.3.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.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 >
             < executions >
                < execution >
                   < goals >
                      < goal >repackage</ goal >
                   </ goals >
                </ execution >
             </ executions >
          </ plugin >
       </ plugins >
    </ build >
</ project >

5.2、配置maven打包项目

打开Run/Debug Configurations对话框,按下图配置:

 wKiom1k4-guihdfcAAFZU38R-gs576.png

5.3、打包

 wKiom1k4-rPAAIZxAABNWr11KR4617.png

 wKioL1k4-vmS8tahAACVLUZULXg084.png

    wKioL1k4-xKS-VrTAACVLUZULXg266.png


这样,我们就可以通过如下命令直接运行了:

1
java -jar demo-0.0.1-SNAPSHOT.jar

如果希望按照传统的做法,将工程发布成war文件,就在pom.xml中将<packaging>jar</packaging>换成<packaging>war</packaging>,这样打包后的war文件放到tomcat也可以运行

六、SpringBoot的配置

可以在工程的resources文件中创建一个application.properties或application.yml文件,这个文件会被发布在classpath中,并且被spring Boot自动读取。

如:将端口改成80,并将tomcat的编码改成UTF-8

application.properties文件:

1
2
server.port = 80
server.tomcat.uri-enconding = UTF-8

application.yml文件:

1
2
3
4
server:
     port: 80
     tomcat:
         uri-enconding: UTF-8

本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1933379如需转载请自行联系原作者


我爱大金子
相关文章
|
3月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
326 1
|
4月前
|
Java 应用服务中间件 Spring
为什么SpringBoot的 jar 可以直接运行?
SpringBoot的 jar 可以直接运行的原因
465 2
|
1月前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
52 1
|
29天前
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
47 0
|
2月前
|
Java Docker 微服务
SpringBoot微服务打包Docker镜像
SpringBoot微服务打包Docker镜像
84 11
|
2月前
|
XML Java 应用服务中间件
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
233 2
|
2月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
164 0
|
2月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
368 0
|
2月前
|
监控 数据可视化 Java
springBoot:actuator&admin 图形可视化&spring 打包 (七)
本文介绍了Spring Boot Actuator及其图形化管理界面Spring Boot Admin的使用方法,包括依赖导入、服务端与客户端配置、以及如何打包为JAR和WAR文件并部署。通过这些步骤,可以实现应用的监控和管理功能。
105 0
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
186 1