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


我爱大金子
相关文章
|
2月前
|
Java 开发工具 Maven
springboot项目打包为sdk供其他项目引用
springboot项目打包为sdk供其他项目引用
|
3月前
|
Java 测试技术 Maven
Spring Boot项目打包配置详解
Spring Boot项目打包配置详解
85 0
|
4月前
|
Java
dockerfile打包阿里云镜像 springboot实战项目(阿里云镜像仓失败 处理)
dockerfile打包阿里云镜像 springboot实战项目(阿里云镜像仓失败 处理)
|
4月前
|
Java Linux Maven
Linux快速启动SpringBoot工程
Linux快速启动SpringBoot工程
46 0
|
4月前
|
Java 微服务
【SpringBoot】SpringBoot工程 自定义配置文件
【SpringBoot】SpringBoot工程 自定义配置文件
33 0
|
3月前
|
前端开发 IDE Java
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
167 0
|
1月前
|
Java Maven Spring
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
47 0
|
1月前
|
存储 Java Spring
SpringBoot的 jar 可以直接运行
SpringBoot的 jar 可以直接运行
15 0
|
1月前
|
SQL 监控 Java
nacos常见问题之dubbo+nacos+springboot3的native打包成功后运行出现异常如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
41 2
|
1月前
|
jenkins Java 持续交付
详解如何使用Jenkins一键打包部署SpringBoot项目
详解如何使用Jenkins一键打包部署SpringBoot项目
93 0