自己动手,使用Spring Initializr从零开始搭建Spring Cloud项目
新建Project
这里使用的开发工具是IDEA,JDK版本1.8。
打开IDEA开发工具,File -> New -> Project
然后一步步往下设置,然后到这一步,选择Spring Cloud
OK,继续一路往下,点finish,Spring Cloud项目创建完成。
设置编译器版本,选择jdk版本等
这里我使用的是JDK 1.8,当前主流的版本。具体操作不再赘述,网上一搜一大把,照着做就行了。
新建微服务启动类Application.class
注意这2个注解,一定要加上:@EnableDiscoveryClient和@SpringBootApplication
package com.yangcq.learning.hantang;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class HantangApplication {public static void main(String[] args) {SpringApplication.run(HantangApplication.class, args);}}
配置文件Application.properties
#服务名称
spring.application.name=hantang#设置日志级别
logging.level.root=info#对外提供服务端口号
server.port=8088#eureka-client注册地址
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/#是否向eureka-server注册
eureka.client.registerWithEureka=false
新建Controller
这里的注解和入参的定义很关键,请看仔细了,直接上代码。
为了方便跟踪,打印一行日志。
package com.yangcq.learning.hantang.controller;import com.yangcq.learning.hantang.HantangApplication;
import com.yangcq.learning.hantang.service.CommonService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping(value = "/interface/hantang/common")
public class CommonController {private static final Log log = LogFactory.getLog(HantangApplication.class);@Autowiredprivate CommonService commonService;@RequestMapping(value = "/list/{var}", method = RequestMethod.GET)public String getInventoryList(@PathVariable String var) {log.info("请求入参 var:" + var);commonService.commonTest();return "汉唐气象";}
}
新建service
CommonService接口
package com.yangcq.learning.hantang.service;public interface CommonService {/*** service方法*/void commonTest();
}
CommonServiceImpl实现类,注意,一定要加上@Service注解,注入Spring IOC容器
package com.yangcq.learning.hantang.service.impl;import com.yangcq.learning.hantang.service.CommonService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;@Service
public class CommonServiceImpl implements CommonService {private static final Log log = LogFactory.getLog(CommonServiceImpl.class);@Overridepublic void commonTest() {// 业务逻辑一般放在service中log.info("进入service commonTest");}
}
项目整体文件结构
OK,看一下项目整体结构
至此,一个Spring Cloud项目就算搭建完成了。接下来我们启动项目,访问看是否正常。
注意,这里我对banner进行了个性化定制,使用汉字“中”取代了“SPRING”。
这个挺简单,大家可以一试,只需要在resource下,新建一个banner.txt文件,然后把你自定义的banner设计,复制进去即可。
项目启动阶段,会去读取这个banner.txt文件,这个名字是固定的,不能更改,详情可以参考SpringApplication.class源码。
控制台完整启动日志如下:
D:\JDK64\jdk1.8\bin\java.exe -XX:TieredStopAtLevel=1___||||||||||||+++++++|||++++++++ ||| ++ ||| ++++++++|||+++++++||||||||||||vvv
2020-04-02 16:23:58.530 INFO 68876 --- [ main] c.y.learning.hantang.HantangApplication : No active profile set, falling back to default profiles: default
2020-04-02 16:23:58.962 INFO 68876 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=fe5609f5-cb29-3873-8849-003765dbeeef
2020-04-02 16:23:59.226 INFO 68876 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8088 (http)
2020-04-02 16:23:59.236 INFO 68876 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-04-02 16:23:59.236 INFO 68876 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-04-02 16:23:59.538 INFO 68876 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-04-02 16:23:59.538 INFO 68876 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 992 ms
2020-04-02 16:23:59.716 INFO 68876 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-04-02 16:24:00.298 INFO 68876 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8088 (http) with context path ''
2020-04-02 16:24:00.702 INFO 68876 --- [ main] c.y.learning.hantang.HantangApplication : Started HantangApplication in 3.422 seconds (JVM running for 4.388)
项目启动完成后,访问:http://localhost:8088/interface/hantang/common/list/%E6%B1%89
注意,我这里入参是中文:汉,所以显示的是对应的unicode编码
来看最终的效果:
控制台日志如下:
2020-04-02 17:01:18.938 INFO 68876 --- [nio-8088-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-04-02 17:01:18.938 INFO 68876 --- [nio-8088-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-04-02 17:01:18.945 INFO 68876 --- [nio-8088-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 7 ms
2020-04-02 17:01:18.973 INFO 68876 --- [nio-8088-exec-2] c.y.learning.hantang.HantangApplication : 请求入参 var:汉
2020-04-02 17:01:18.973 INFO 68876 --- [nio-8088-exec-2] c.y.l.h.service.impl.CommonServiceImpl : 进入service commonTest
使用Spring Initializr从零开始搭建Spring Cloud项目,就这么愉快的结束了。后续,我会基于这个项目,进行Spring Cloud项目的
扩展,逐渐丰富这个项目,敬请期待。
自己动手,使用Spring Initializr从零开始搭建Spring Cloud项目相关推荐
- Spring Initializr私服搭建和定制化模板
概述 Spring Initializr是Spring官方提供,用来创建SpringBoot项目的脚手架. Spring官方Spring Initializr:https://start.spring ...
- 【Spring Boot】使用Spring Boot来搭建Java web项目以及开发过程
[Spring Boot]使用Spring Boot来搭建Java web项目以及开发过程 一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来 ...
- 从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一)
从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一) 1.vue-cli搭建一个可靠成熟的项目 1.介绍 vue-cli 我是去年六月份接触的vue1.0,当时还是个菜逼,当 ...
- 从零开始搭建一个react项目
Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...
- 使用 spring tool suit 搭建 spring boot 项目
使用 eclipse 搭建 spring boot 项目详细步骤 相对繁琐. 使用 spring tool suit 则简单多了. 直接new一个project ,选项 spring starter ...
- Spring Boot快速搭建Spring框架
2019独角兽企业重金招聘Python工程师标准>>> Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著 ...
- 从零开始搭建一个springCloud项目
前言:springCloud,相信大家已经听过很多次了,现在各种大大小小的公司都在使用的微服务框架,包括我正在上班公司的项目里面使用到的就是springCloud,此文仅对于刚入行不久的小白,大佬们可 ...
- 从零开始搭建React开发项目之抖音“剪映”——创作课堂(基础入门篇)
前言 React是近几年来前端项目开发非常火的一个框架,其背景是Facebook团队的技术支持,市场占有率也很高,对于很多新手来说可能很多人都在犹豫是选react还是vue,如果时间充裕的话还是首选r ...
- 从零开始搭建vue2+vant2项目
前言:最近发现一个比较不错的移动端UI组件库vant2,打算搭建一个项目来学习一下,以防忘记,记录一下搭建过程. 1. 使用npm创建项目 执行 "vue create 项目名" ...
最新文章
- 创建型模式之FactoryMethod
- bottle+jquery 前后端分离
- adb connect 出现timeout的处理方式
- 【Tools】Centos7.5安装MySQL5.7
- 洛谷P1099 树网的核
- 栈的简单介绍以及栈结构的ADT【数据结构】
- 李善友:为什么外企人不敢创业
- php由哪几部分组成,微型计算机通常是由哪几部分组成?
- STM32工作笔记0029---认识电路原理图中的VCC,VDD,VEE,VSS
- 前端存储 (2) - sessionStorage ,localStorage
- 用lstm模型做预测_深度学习模型 CNN+LSTM 预测收盘价
- 图像语义分割(5)-DeepLabV2: 使用深度卷积网络、空洞卷积和全连接条件随机场进行图像语义分割
- dispatcherServlet源码分析之doDispatch
- 计算机组成原理强制类型转换规则,计算机组成原理——浮点数加减运算强制类型转换...
- 找出数组中重复的值和所在位置
- java更改exif信息_照片EXIF信息的读取和改写的JAVA实现
- android坐标画图软件下载,地图坐标app下载-地图坐标软件下载v4.8.15 安卓版-西西软件下载...
- 清橙OJ A1095 回溯之教室排课
- gxworks2使用指令手册_GX Works2操作手册(智能功能功能模块操作篇):三菱 GX 三菱 GX Works2操作手册(智能功能功能模块操作篇)...
- ps导出gif+html,ps怎么导出gif格式的动图