<一> idea+gradle+springboot创建项目
转载自https://windcoder.com/springbootchutan-chuangjianxiangmu
前言
一边学习公司用到的技术,一边重构小程序后端,从而更好的理解公司搭建的框架。此处记录一个用idea+gradle+springboot的基础实现。
所用环境
IntelliJ IDEA 2017.1.1
JDK1.8
Gradle4.3
Spring Boot1.5.8.RELEASE
创建Gradle项目
1、new Project
如图在gradle中选择java和web

2、填写基础信息
填写GroupId、ArtifactId、Version三项,和maven中一样。
3、选择gradle基础
此处是如图选择,具体含义见下面名词解释:

- Use auto-import | 是否开启自动导入,若开启修改gradle脚本文件后会自动检测变化并对项目进行刷新。
- Create directories for empty content roots automatically | 导入或者创建gradle项目时,是否自动创建标准目录结构。
- Create separate module per source set | 让每个模块单独采用Gradle约定的source set结构去执行构建。
- Use default gradle wrapper (recommended) | 使用Gradle Wrapper(如果一定要翻译的话,可以称之为Gradle 包装器),这可以使得项目组成员不必预先安装好gradle即可执行gradle脚本,同时也便于统一项目所使用的gradle版本,当然虽说是不必预装其实是它会自己去官网帮你下载一个,然而gradle安装包体积不小同时又有墙的过滤,所以开启此项最好事先备好梯子。
- Use gradle wrapper task configuration | 自定义Gradle Wrapper配置。
- Use local gradle distribution | 采用本地安装的Gradle执行脚本
- Gradle home | 选择你的Gradle安装目录即可,无需选择到bin
- Gradle JVM | 选择构建Gradle项目使用的JVM,默认是项目采用的JDK
4、标准目录结构
执行完成后需等待一会gradle的自动创建过程,然后可看到如图所示的目录结构

添加SpringBoot依赖
在build.gradle文件中的dependencies 中添加springboot依赖:
compile("org.springframework.boot:spring-boot-starter-web:1.5.8.RELEASE")
创建含main函数的AppLicationController类:
package com.windcoder.nightbook.controller; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; /**
* Description:
* User: WindCoder
* Date: 2017-11-12
* Time: 22:30 下午
*/
@Controller
@EnableAutoConfiguration
public class AppLicationController { @ResponseBody
@RequestMapping("/helloMain")
public String home(String name){
return "Hello "+name+"! This is Spring-boot test One";
} public static void main(String[] args){
SpringApplication.run(AppLicationController.class,args);
}
}
运行
在AppLicationController类处右键-执行run即可。此时不需要管存不存在web.xml,也不需要创建application.properties文件。
新建自定义Controller
到现在为止依旧是spingBoot官方的实例,但此时若自己建一个自定义的controller类,如HelloController 类:
package com.windcoder.nightbook.controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; /**
* Description:
* User: WindCoder
* Date: 2017-11-12
* Time: 22:32 下午
*/
@Controller
@RequestMapping("/api")
public class HelloController { @ResponseBody
@RequestMapping(value ="/hello",method = RequestMethod.GET)
public String home(String name){
return "Hello "+name+"! This is Spring-boot test";
}
}
重启执行发现会报如下错误:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.
此时需要略作修改才能让程序找到——将@EnableAutoConfiguration替换为@SpringBootApplication:
package com.windcoder.nightbook.controller; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; /**
* Description:
* User: WindCoder
* Date: 2017-11-12
* Time: 22:30 下午
*/
@Controller
@SpringBootApplication
public class AppLicationController { @ResponseBody
@RequestMapping("/helloMain")
public String home(String name){
return "Hello "+name+"! This is Spring-boot test One";
} public static void main(String[] args){
SpringApplication.run(AppLicationController.class,args);
}
}
若是该类中没有访问路径,可以将@Controller注解去掉。
还有一种实现方式是对含main的类增加注解,ComponentScan方式:
@Configuration
@EnableAutoConfiguration
@ComponentScan
此处暂且不再重贴代码。
之后重新运行便可访问到自定义Controller中的路径。
弦外音:
很多Spring Boot开发者经常使用
@Configuration,@EnableAutoConfiguration,@ComponentScan注解他们的main类,由于这些注解如此频繁地一块使用,Spring Boot就提供了一个方便的@SpringBootApplication注解作为代替。
@SpringBootApplication注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan
@SpringBootApplication注解也提供了用于自定义@EnableAutoConfiguration和@ComponentScan属性的别名(aliases)。参考资料
[Gradle中文教程系列]-跟我学Gradle-14.1:IDEA中Gradle插件的使用
使用Intellij Idea+Gradle 搭建Java 本地开发环境
SpringBoot配置非含main类的Controller的注解
spring boot 自定义Controller,不能被扫描
延伸
<一> idea+gradle+springboot创建项目的更多相关文章
- 1 springboot创建项目
文章采用idea工具进行springboot项目创建 1点击 New Project 选择[Spring Initializr] 选择Jdk版本其他默认即可 点击Next 2添加项目信息 文章即使用默 ...
- Springboot创建项目(idea版本)
一:概述 由于springboot项目,不管是java工程还是web工程都可以直接以jar方式运行,所以推荐创建jar工程,这里创建jar工程项目为例. 二:两种方式创建springboot项目 1. ...
- springboot创建项目
Springboot作为轻量级快速开发受到无数java人的青睐,Spring Boot是为了简化Spring应用的创建.运行.调试.部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过 ...
- 二:动手实操SpringBoot-使用Spring Initializr创建项目
使用 Spring Initializr 初始化 Spring Boot 项目 Spring Initializr 从本质上说就是一个Web应用程序,它能为你构建Spring Boot项目结构. 虽然 ...
- [转] 使用Spring Boot和Gradle创建项目
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...
- springBoot(2)---快速创建项目,初解jackson
快速创建项目,初解jackson 一.快速创建项目 springboot官网提供了工具类自动创建web应用:网址:http://start.spring.io/ 官网页面 1.快速创建一个 选择web ...
- IDEA+Maven+多个Module模块(创建多模块SpringBoot整合项目)
最近在学习springboot,先从创建项目开始,一般项目都是一个项目下会有多个模块,这里先创建一个最简单的实例,一个项目下有一个springboot模块项目提供web服务,引用另一个java项目(相 ...
- AndroidStudio创建项目时一直处于building“project name”gradle project info的解决办法
AndroidStudio创建项目,最后一步finish后,一直长时间处于building“project name”gradle project info,界面就一直停留在如图所示: 谷歌自家的产品 ...
- springboot创建maven多模块项目
SpringBoot创建maven多模块项目 项目结构 该项目名称为springboot-maven-multi,由springboot-maven-multi.user-dao.user-domai ...
随机推荐
- [python 学习] python 多线程
1. # -*- coding: utf-8 -*- import threading import time import random def go(name): for i in range(2 ...
- bzoj5015 [Snoi2017]礼物 矩阵快速幂+二项式展开
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5015 题解 设 \(f_i\) 表示第 \(i\) 个朋友的礼物,\(s_i\) 表示从 \( ...
- 前端面试题1(HTML篇)
HTML 语义化 HTML标签的语义化是指:通过使用包含语义的标签(如h1-h6)恰当地表示文档结构 css命名的语义化是指:为html标签添加有意义的class 为什么需要语义化: 去掉样式后页面呈 ...
- Java EE的优越性主要表现在哪些方面
J2 EE的优越性主要表现在哪些方面 J2EE基于JAVA 技术,与平台无关. J2EE拥有开放标准,许多大型公司实现了对该规范支持的应用服务器.如BEA ,IBM,ORACLE等. J2EE提供相当 ...
- 为什么选择Linux
从最近的统计数据可以看到,全球大量数据中心的服务器已经开始向基于 Linux Server 平台转移.相较 Windows Server 而言,Linux Server 提供了更多优势.包括 Goog ...
- python内建模块——collections模块
在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...
- 全文检索 使用最新lucene3.0.3+最新盘古分词 pangu2.4 .net 实例
开发环境 vs2015 winform 程序 1 首先需要下载对应的DLL 文章后面统一提供程序下载地址 里面都有 2 配置pangu的参数 也可以不配置 采用默认的即可 3 创建索引,将索引存放到本 ...
- CSS页面乱码 GB2312、UTF-8格式问题解决方案
如同左图所现,出现了页面乱码问题本来应该是显示gb3212字符的"关闭"文字了.. 解决方案一: 在所调用的CSS页面的第一行添加下边的这一句代码, 注意:一定要是在CSS的头 ...
- Oracle命令行模式,批量执行SQL脚本
由于项目不同,使用的数据库也不一样,通常MySQL 比较方便简介,相对而言Oracle比较繁琐一点,尤其是堡垒机的连接的时候, 通过堡垒机登陆,数据库服务器,通过下面的脚本执行进入到命令行模式执行SQ ...
- 判断逻辑 先判断协议字段返回,再判断业务返回,最后判断交易状态 API密钥
[微信支付]微信小程序支付开发者文档 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_1 协议规则 商户接入微信支付, ...