springcloud微服务一:spring boot基础项目搭建及问题处理
公司接下来某个项目打算使用微服务架构,使用springcloud以及它集成的一些相关项目,因此虽然在其他方面的很多技术上还感觉急需提高,却又不得不以工作为重,先放下其他来了解一下这方面的技术。
一番了解后发现,spring cloud是建立在spring boot的基础上的,而之前虽然听说过,也随便看了一下spring boot,却没有真正使用,因此还必须先花时间学一下spring boot。
spring boot的理念是“习惯优于配置”,我个人的理解就是尽量减少开发过程中手动的spring相关的配置文件。同时使用spring boot还有一个优点就是,它可以内嵌很多容器,例如tomcat,使得原本可能需要安装tomcat才能运行的web项目,可以直接以运行jar文件的形式启动运行。
spring boot项目创建有多种方式,鉴于目前工作中使用的是eclipse开发工具,因此整个学习过程中,也都是在eclipse中进行。
而eclipse中的创建实际上也是可以有两种方式的,一种是在安装了STS插件之后直接创建,另一种是创建简单的maven项目后,修改pom.xml文件,为了提高效率,我这里就安装了STS插件,以第一种方式创建。
这个过程中还有一个小插曲,我原本的eclipse版本是Mars.1 Release (4.5.1),安装STS的时候安装不成功,说是eclipse版本不匹配,于是安装了新版的eclipse,版本号Neon.3 Release (4.6.3)。但是当我在新版的eclipse中安装好STS后,再来尝试在旧版安装时,居然又一路畅通无阻的成功了。
eclipse中STS安装也有几种方式,我的STS的安装过程是这样的: help – Eclipse Marketplace – Popular,然后选择下图中的插件install。
这个插件安装成功以后,就可以看到在eclipse中new project时会有spring这个选项了(当然了,不知这一个地方有变化),打开之后还会有几个子选项,如图:
而我快速创建spring boot项目的时候,使用的就是上图中第三个子选项Spring Starter Project。具体步骤是:new – Project – Spring Starter Project – 出现的界面中name选项后输入项目名称 – 接下来出现如下图所示界面:
这里我主要是使用了两个地方,第一个就是选择spring boot version,第二个就是在标示2的位置选择要创建的具体spring boot项目,有很多选项可供选择,而我就选了一个web项目。
创建好的web项目基本结构如下图:
创建的时候它会自动生成一个带有main方法的类,这个main方法实际上就是spring boot项目的程序入口,我在里边加入了一个@RestController和这样一段代码:
@RequestMapping("/") String index(){ return "Hello Spring Boot";
之后整个类的代码如下:
package com.springTest.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class SpringBootDemo1Application { @RequestMapping("/") String index(){ return "Hello Spring Boot"; public static void main(String[] args) { SpringApplication.run(SpringBootDemo1Application.class, args);
当安装好STS插件之后,创建一个简单的spring boot的web项目就是这么简单,不需要像传统的spring项目一样还要配置spring.xml等配置文件以及web.xml文件。
但是需要注意的是,我在第一次创建的时候,spring boot相关的jar包下载不下来,因为公司的maven仓库中没有对应版本的,于是自己修改了maven的配置文件,加入了阿里云的maven仓库:
mirror id alimaven /id name aliyun maven /name url http://maven.aliyun.com/nexus/content/groups/public/ /url mirrorOf central /mirrorOf /mirror
当重新配置maven仓库,使得程序编译没有问题后,就可以启动项目了,eclipse中使用run as – Spring Boot App就可以直接运行,不需要像传统web项目那样要加入到tomcat中才行。
启动成功后浏览器访问localhost:8080,会看到页面如下,一个简单的spring boot web项目就成功创建了。
这款Alibaba SpringCloud微服务项目真香!Github标星35K+ 近年来随着互联网的飞速发展,各行各业都在拥 互联网。互联网给人类生活带来了翻天覆地的变化,人们在享受互联网给生活带来便捷的同时,业务需求的发展也对互联网技术提出了更高的要求,传统的单体架构对越来越复杂的业务需求显得力不从 此外,随着大数据云计算和人工智能的飞速发展,软件的架构显得越来越重要。近几年来,“微服务”这名词在各大网站、论坛、演讲中出现的频率足以让人们感觉到它对软件架构带来的影响 。目前,各大公司都在纷纷采用微服务架构。
大白话揭秘搞好就能“年薪百万”的SpringCloud微服务 为什么会有微服务? 假如回到10年前,一天张三入职了电商企业—并夕夕商城。 公司初创,人比较少,公司网站的用户也很少,公司只有一个工程师 项目架构比较简单
SpringCloud微服务实战——搭建企业级开发框架(四十三):多租户可配置的电子邮件发送系统设计与实现 SpringBoot提供了基于JavaMail的starter,我们只要按照官方的说明配置邮件服务器信息,即可使我们的系统拥有发送电子邮件的功能。但是,在我们GitEgg开发框架的实际业务开发过程中,有两个问题需要解决:一个是SpringBoot邮箱服务器的配置是配置在配置文件中的,不支持灵活的界面配置。另外一个是我们的开发框架需要支持多租户,那么此时需要对SpringBoot提供的邮件发送功能进行扩展,以满足我们的需求。
SpringCloud学习(十二):Hystrix支付微服务构建 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
SpringCloud学习(六):微服务集群配置 在上文中我们实现了eureka的集群,就相当于用户、服务和中间商中,我们连系了多个中间商,这样假如一个中间商跑路了,我们还能够通过其他中间商访问到服务。 那么,假如服务坏了呢?肯定不能只有一个服务,我们也需要给他找几个“备胎” 所以,我们需要实现服务的集群
SpringCloud微服务构建浅析 Spring Cloud 作为Java 语言的微服务框架,它依赖于Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud 的组件非常多,涉及微服务的方方面面,井在开源社区Spring 和Netflix 、Pivotal 两大公司的推动下越来越完善。
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
相关文章
- nacos学习二,SpringCloud整合nacos、feign、gateway
- springcloud 熔断处理
- docker-compose编排springcloud微服务
- springcloud为何许人也?(1)
- springCloud的前奏曲-开发架构的演变(1)
- 16.SpringCloud实战项目-Spring Cloud Alibaba 组件简介
- 11. SpringCloud实战项目-初始化数据库和表
- SpringCloud之Hystrix容错保护原理及配置
- 【架构】SpringCloud 注册中心、负载均衡、熔断器、调用监控、API网关示例
- Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
- 搭建SpringCloud Alibaba鉴权中心服务(详细教程)
- SpringCloud启动报错Failed to initialize DiscoveryClient
- SpringCloud系列八:Zuul 路由访问(Zuul 的基本使用、Zuul 路由功能、zuul 过滤访问、Zuul 服务降级)
- SpringCloud学习笔记(二)
- 【springcloud 微服务】Spring Cloud Alibaba整合Sentinel详解
- 消息驱动(SpringCloud Stream)
- Springcloud踩坑记---使用feignclient远程调用服务404
- [SpringCloud系列008] SpringCloud之Feign