创建一个springboot工程最小化代码

简介: 创建一个springboot工程最小化代码(json-lib的引入gradle方式)

compile 'org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE'

compile 'net.sf.json-lib:json-lib:2.4:jdk15'

compile 'org.apache.httpcomponents:httpcore:4.4.10'
compile 'org.apache.httpcomponents:httpmime:4.5.6'
compile 'org.apache.httpcomponents:httpclient:4.5.6'

<groupId>net.sf.json-lib</groupId>    
<artifactId>json-lib</artifactId>    
<version>2.4</version>    
<classifier>jdk15</classifier>    

最小代码的springboot工程:

settings.gradle:

/*

  • This settings file was generated by the Gradle 'init' task.

*

  • The settings file is used to specify which projects to include in your build.
  • In a single project build this file can be empty or even removed.

*

*/

/*
// To declare projects as part of a multi-project build use the 'include' method
include 'shared'
include 'api'
include 'services:webservice'
*/

rootProject.name = 'testcase'

build.gradle

apply plugin: 'java-library'
apply plugin: 'org.springframework.boot'

buildscript {

repositories {
    maven {
        name 'Aliyun Maven Repository'
        url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
}
dependencies {
    classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.18.RELEASE"
    classpath "io.spring.gradle:dependency-management-plugin:1.0.5.RELEASE"
}

}
// In this section you declare where to find the dependencies of your project
repositories {

maven {
    name 'Aliyun Maven Repository'
    url "http://maven.aliyun.com/nexus/content/groups/public/"
}
jcenter()

}

springBoot {

executable = true
mainClass = 'com.casetest.TestCaseBoot'

}

dependencies {

//Spring boot
compile 'org.springframework.boot:spring-boot-starter-web:1.5.18.RELEASE'

// Swagger2
compile 'io.github.swagger2markup:swagger2markup:1.3.3'
compile 'io.springfox:springfox-swagger2:2.9.0'
compile 'io.springfox:springfox-swagger-ui:2.9.0'

api 'org.apache.commons:commons-math3:3.6.1'

implementation 'com.google.guava:guava:23.0'

testImplementation 'junit:junit:4.12'

}

src下的文件:

package com.casetest;

import java.io.IOException;
import java.util.ArrayList;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@SpringBootApplication
@ServletComponentScan //启动器启动时,扫描本目录以及子目录带有的webservlet注解的
public class TestCaseBoot {

public static void main(String[] args) throws IOException {
    SpringApplication.run(TestCaseBoot.class, args);
    System.out.println("success");
}


/*@Bean // 一定要加,不然这个方法不会运行 // 一定要返回ServletRegistrationBean
public ServletRegistrationBean getServletRegistrationBean() { 
    ServletRegistrationBean bean = new ServletRegistrationBean(new CaseTwoServlet()); 
    bean.addUrlMappings("/secondServlet"); // 访问路径值
    return bean;
}*/

@Bean
public Docket docket() {
    return new Docket(DocumentationType.SWAGGER_2).groupName("agent").select()
            .apis(RequestHandlerSelectors.basePackage("com.casetest"))
            .paths(PathSelectors.any())
            .paths(PathSelectors.ant("/api/**/*"))
            .build()
            .apiInfo(new ApiInfo("API", "这App等相关的API", "v3", "Terms of service",
                    new Contact("Test", "http://www.testcase.com", ""), "", "", new ArrayList<>()));
}

}

package com.casetest.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
@ComponentScan({

"com.casetest.rs", 
"com.casetest.schedule",
"com.casetest.service"

})
public class WebAutoConfiguration {

@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}

}

package com.casetest.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
            .allowedOrigins("*")
            .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
            .maxAge(3600)
            .allowCredentials(true);
}

}

package com.casetest.rs;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/api/case/one")
@RestController
public class CaseOneRS {

@RequestMapping(value="/sayHi",method= {RequestMethod.GET})
public String sayHi(String name) {
    return "Hi " + name;
}

@RequestMapping(value="/sayHi",method= {RequestMethod.POST})
public String replyHi(String name) {
    return "me to " + name;
}

}

package com.casetest.rs;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns="/api/case/two",loadOnStartup=1)
public class CaseTwoServlet extends HttpServlet{

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("get....");
    super.doGet(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("post....");
    super.doPost(req, resp);
}

}

相关文章
|
2月前
|
JavaScript Java 测试技术
基于小程序的移动学习平台+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的移动学习平台+springboot+vue.js附带文章和源代码说明文档ppt
23 0
|
7天前
|
前端开发 JavaScript 网络协议
Springboot中为什么你能通过一小段代码来访问网页?
Springboot中为什么你能通过一小段代码来访问网页?
23 7
|
16天前
|
Java Maven Spring
创建Springboot工程的过程详细步骤
【6月更文挑战第17天】 创建Springboot工程涉及以下步骤: 1. 安装JDK和Maven并配置环境变量。 2. 在IDEA中新建项目,选择`Create from archetype`,选取`spring-boot-starter-parent`。 3. 输入项目名、包名和模块名,完成设置。 4. 生成的项目包含Springboot主类`Application`。 5. 添加所需功能,如控制器、服务和数据访问对象,使用Spring注解。 6. 运行`Application`启动项目。要深入学习,参考官方文档或在线教程。 ```
27 3
|
25天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的贵工程寝室快修附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的贵工程寝室快修附带文章源码部署视频讲解等
15 1
|
4天前
|
Java Maven
大事件后端项目02----springboot工程创建
大事件后端项目02----springboot工程创建
|
2月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的冀中工程技师校园网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的冀中工程技师校园网站的详细设计和实现(源码+lw+部署文档+讲解等)
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js的基于工程教育认证的计算机课程管理平台附带文章和源代码设计说明文档ppt
基于springboot+vue.js的基于工程教育认证的计算机课程管理平台附带文章和源代码设计说明文档ppt
37 6
|
1月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的高校物业工程报修系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的高校物业工程报修系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
2月前
|
JavaScript Java 测试技术
基于小程序的健身管理系统及会员微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的健身管理系统及会员微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
23 2
|
2月前
|
JavaScript Java 测试技术
基于小程序的订餐系统+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的订餐系统+springboot+vue.js附带文章和源代码说明文档ppt
23 0
基于小程序的订餐系统+springboot+vue.js附带文章和源代码说明文档ppt