本篇文章为你整理了springcloud快速入门(springcloud详细教程)的详细内容,包含有springcloud的入门详解 springcloud详细教程 spring cloud 入门 springcloud怎么学 springcloud快速入门,希望能帮助你了解 springcloud快速入门。
使用idea工具创建一个maven空项目,删除不需要的src目录等东西,用来做父项目,只剩下pom.xml文件
在父项目中依次创建三个模块module,分别为eruekaservice、provide、consumer三个子项目(springboot项目)。
在erueka中添加配置信息、在启动类上添加@EnableEurekaServer注解。
在provide中添加配置信息、在启动类上添加@EnableEurekaClient注解(consumer的步骤相同)。
在provide子项目中创建entity实体类、DAO层、service层、controller层,此处使用mybatis连接数据库、Druid连接池来连接MySQL(DataSource配置略)。
在consumer子项目中创建controller层,使用restTemplate来访问provide中的api(消费者controller的接口)。
项目运行顺序,erueka provide comsumer。
二、实现步骤
1、创建maven空项目
删除不需要的目录和文件
2、创建erueka-service
选择需要导入的模块(依赖)
?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
modelVersion 4.0.0 /modelVersion
groupId com.yiblue /groupId
artifactId eureka-server /artifactId
version 0.0.1-SNAPSHOT /version
name eureka-server /name
description eureka-server /description
properties
java.version 1.8 /java.version
project.build.sourceEncoding UTF-8 /project.build.sourceEncoding
project.reporting.outputEncoding UTF-8 /project.reporting.outputEncoding
spring-boot.version 2.3.7.RELEASE /spring-boot.version
spring-cloud.version Hoxton.SR9 /spring-cloud.version
/properties
dependencies
dependency
groupId org.springframework.cloud /groupId
artifactId spring-cloud-starter-netflix-eureka-server /artifactId
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-test /artifactId
scope test /scope
exclusions
exclusion
groupId org.junit.vintage /groupId
artifactId junit-vintage-engine /artifactId
/exclusion
/exclusions
/dependency
/dependencies
dependencyManagement
dependencies
dependency
groupId org.springframework.cloud /groupId
artifactId spring-cloud-dependencies /artifactId
version ${spring-cloud.version} /version
type pom /type
scope import /scope
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-dependencies /artifactId
version ${spring-boot.version} /version
type pom /type
scope import /scope
/dependency
/dependencies
/dependencyManagement
build
plugins
//编译插件
plugin
groupId org.apache.maven.plugins /groupId
artifactId maven-compiler-plugin /artifactId
version 3.8.1 /version
configuration
source 1.8 /source
target 1.8 /target
encoding UTF-8 /encoding
/configuration
/plugin
//maven插件
plugin
groupId org.springframework.boot /groupId
artifactId spring-boot-maven-plugin /artifactId
version 2.3.7.RELEASE /version
configuration
mainClass com.yiblue.eurekaserver.EurekaServerApplication /mainClass
/configuration
executions
execution
id repackage /id
goals
goal repackage /goal
/goals
/execution
/executions
/plugin
/plugins
/build
/project
修改配置文件application.yml
server:
port: 8080
spring:
application:
name: eureka-server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
在启动类EurekaServerApplication上添加注解:@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
3、创建provider项目(与erueka一样,这省略)
pom.xml依赖导入
?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
modelVersion 4.0.0 /modelVersion
groupId com.yiblue /groupId
artifactId provider-8001 /artifactId
version 0.0.1-SNAPSHOT /version
name provider-8001 /name
description provider-8001 /description
properties
java.version 1.8 /java.version
project.build.sourceEncoding UTF-8 /project.build.sourceEncoding
project.reporting.outputEncoding UTF-8 /project.reporting.outputEncoding
spring-boot.version 2.3.7.RELEASE /spring-boot.version
spring-cloud.version Hoxton.SR9 /spring-cloud.version
/properties
dependencies
dependency
groupId org.springframework.cloud /groupId
artifactId spring-cloud-starter-netflix-eureka-client /artifactId
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-web /artifactId
/dependency
dependency
groupId org.mybatis.spring.boot /groupId
artifactId mybatis-spring-boot-starter /artifactId
version 2.1.4 /version
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-devtools /artifactId
scope runtime /scope
optional true /optional
/dependency
dependency
groupId mysql /groupId
artifactId mysql-connector-java /artifactId
scope runtime /scope
/dependency
dependency
groupId org.projectlombok /groupId
artifactId lombok /artifactId
optional true /optional
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-test /artifactId
scope test /scope
exclusions
exclusion
groupId org.junit.vintage /groupId
artifactId junit-vintage-engine /artifactId
/exclusion
/exclusions
/dependency
dependency
groupId com.alibaba /groupId
artifactId druid /artifactId
version 1.1.17 /version
/dependency
/dependencies
dependencyManagement
dependencies
dependency
groupId org.springframework.cloud /groupId
artifactId spring-cloud-dependencies /artifactId
version ${spring-cloud.version} /version
type pom /type
scope import /scope
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-dependencies /artifactId
version ${spring-boot.version} /version
type pom /type
scope import /scope
/dependency
/dependencies
/dependencyManagement
build
plugins
plugin
groupId org.apache.maven.plugins /groupId
artifactId maven-compiler-plugin /artifactId
version 3.8.1 /version
configuration
source 1.8 /source
target 1.8 /target
encoding UTF-8 /encoding
/configuration
/plugin
plugin
groupId org.springframework.boot /groupId
artifactId spring-boot-maven-plugin /artifactId
version 2.3.7.RELEASE /version
configuration
mainClass com.yiblue.provider8001.Provider8001Application /mainClass
/configuration
executions
execution
id repackage /id
goals
goal repackage /goal
/goals
/execution
/executions
/plugin
/plugins
/build
/project
application.yml修改配置(provider),配置mybatis连接MySQL信息
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/shiro?serverTimezone=UTC useUnicode=true characterEncoding=utf8 username: caidongji password: abc123 application: name: provider-8001 eureka: client: service-url: defaultZone: http://localhost:8080/eureka/ server: port: 8001 mybatis: type-aliases-package: com.yiblue.provider8001.entity mapper-locations: classpath:mappers/*xml
在启动类Provider8001Application上添加注解@EnableEurekaClient
@SpringBootApplication
@EnableEurekaClient
public class Provider8001Application {
public static void main(String[] args) {
SpringApplication.run(Provider8001Application.class, args);
}
编写实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ShiroUser {
private Integer uid;
private String uname;
private String password;
private String datasource;
编写接口(这里省略dao,合并到service中了)
@Mapper
@Repository
public interface ShiroUserService {
@Select("select * from usershiro")
public List ShiroUser selectAll();
@Select("select * from usershiro where uname=#{uname}")
public ShiroUser selectOne(String uname);
@Select("insert into usershiro (uname,password,datasource) values (#{uname},#{password},#{datasource})")
void insertOne(ShiroUser shiroUser);
@Select("delete from usershiro where uname=#{uname}")
void deleteOne(String uname);
}
编写controller
@RestController
public class ShiroUserController {
@Autowired
ShiroUserService shiroUserService;
@GetMapping("/getAll")
public List ShiroUser getAll(){
return shiroUserService.selectAll();
}
@GetMapping("/getOne")
public ShiroUser getOne(String uname){ return shiroUserService.selectOne(uname);}
4、创建comsumer项目(与erueka一样,这省略)
配置依赖,pom.xml
?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
modelVersion 4.0.0 /modelVersion
groupId com.yiblue /groupId
artifactId eureka-server /artifactId
version 0.0.1-SNAPSHOT /version
name eureka-server /name
description eureka-server /description
properties
java.version 1.8 /java.version
project.build.sourceEncoding UTF-8 /project.build.sourceEncoding
project.reporting.outputEncoding UTF-8 /project.reporting.outputEncoding
spring-boot.version 2.3.7.RELEASE /spring-boot.version
spring-cloud.version Hoxton.SR9 /spring-cloud.version
/properties
dependencies
dependency
groupId org.springframework.cloud /groupId
artifactId spring-cloud-starter-netflix-eureka-server /artifactId
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-test /artifactId
scope test /scope
exclusions
exclusion
groupId org.junit.vintage /groupId
artifactId junit-vintage-engine /artifactId
/exclusion
/exclusions
/dependency
/dependencies
dependencyManagement
dependencies
dependency
groupId org.springframework.cloud /groupId
artifactId spring-cloud-dependencies /artifactId
version ${spring-cloud.version} /version
type pom /type
scope import /scope
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-dependencies /artifactId
version ${spring-boot.version} /version
type pom /type
scope import /scope
/dependency
/dependencies
/dependencyManagement
build
plugins
plugin
groupId org.apache.maven.plugins /groupId
artifactId maven-compiler-plugin /artifactId
version 3.8.1 /version
configuration
source 1.8 /source
target 1.8 /target
encoding UTF-8 /encoding
/configuration
/plugin
plugin
groupId org.springframework.boot /groupId
artifactId spring-boot-maven-plugin /artifactId
version 2.3.7.RELEASE /version
configuration
mainClass com.yiblue.eurekaserver.EurekaServerApplication /mainClass
/configuration
executions
execution
id repackage /id
goals
goal repackage /goal
/goals
/execution
/executions
/plugin
/plugins
/build
/project
修改application.yml文件
server:
port: 8080
spring:
application:
name: eureka-server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
在启动类Consumer8002Application上添加注解
@SpringBootApplication
@EnableEurekaClient
public class Consumer8002Application {
public static void main(String[] args) {
SpringApplication.run(Consumer8002Application.class, args);
spring不会自动装配restTemplate,需要配置类注入容器中
@Configuration
public class restTemplateconfig {
@Bean
// @LoadBalanced
RestTemplate restTemplate(){ return new RestTemplate();}
创建controller类,调用提供者的api
@RestController
public class ShiroUserController {
@Resource
RestTemplate restTemplate;
@GetMapping("/findAll")
public List ShiroUser findAll(){
return restTemplate.getForObject("http://localhost:8001/getAll", List.class);
5、项目运行顺序:erueka provider consumer
在浏览器中访问:localhost:8002/findAll
6、end
以上就是springcloud快速入门(springcloud详细教程)的详细内容,想要了解更多 springcloud快速入门的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。