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如需转载请自行联系原作者


我爱大金子
目录
打赏
0
0
0
0
90
分享
相关文章
SpringBoot-打包&部署
SpringBoot 项目支持两种打包方式:WAR 包和 JAR 包。JAR 包内置 Tomcat,可直接运行;WAR 包需部署在外部 Tomcat 上。JAR 包通过 `mvn clean package` 打包并用 `java -jar` 运行,支持后台运行和 JVM 参数配置。WAR 包需修改 pom.xml 为 war 类型,移除嵌入式 Tomcat 依赖,添加 servlet-api,并继承 `SpringBootServletInitializer`。配置文件可通过外部 application.yml 覆盖,默认优先级高于 JAR 内部配置。
100 17
SpringBoot-打包&部署
SpringBoot项目打包成war包
通过上述步骤,我们成功地将一个Spring Boot应用打包成WAR文件,并部署到外部的Tomcat服务器中。这种方式适用于需要与传统Servlet容器集成的场景。
55 8
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
126 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略
在本节中,我们将介绍XXL-JOB的GLUE模式和集群模式下的路由策略。GLUE模式允许直接在线上改造方法为定时任务,无需重新部署。通过一个测试方法,展示了如何在调度中心配置并使用GLUE模式执行定时任务。接着,我们探讨了多实例环境下的负载均衡策略,确保任务不会重复执行,并可通过修改路由策略(如轮训)实现任务在多个实例间的均衡分配。最后,总结了GLUE模式和负载均衡策略的应用,帮助读者更深入理解XXL-JOB的使用。
120 9
SpringBoot整合XXL-JOB【04】-  以GLUE模式运行与执行器负载均衡策略
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
63 10
SpringBoot工程打包部署
SpringBoot工程打包部署简介:SpringBoot项目可通过三种方式运行:可执行Jar包、可执行War包和标准War包。其中,可执行Jar/War包可独立运行,标准War包需部署在Tomcat中。具体步骤包括:1. 修改pom.xml添加构建依赖;2. 执行`mvn clean package`命令打包;3. 运行生成的Jar/War包(如`java -jar xxx.jar`)。对于标准War包,还需修改启动类并配置Tomcat依赖。
104 7
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
138 1
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
194 0
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
341 0
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。

热门文章

最新文章