创建maven项目
主maven pom配置
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.ps</groupId>
<artifactId>SPTINGCLOUD</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>SPRINGCLOUD_EUREKASERVER</module>
<module>SPTINGCLOUD_USERSERVICE</module>
<module>SPTINGCLOUD_USERUI</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
创建SPRINGCLOUD_EUREKASERVER模块
SPRINGCLOUD_EUREKASERVER模块pom配置
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>SPTINGCLOUD</artifactId>
<groupId>cn.ps</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>SPRINGCLOUD_EUREKASERVER</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
SPRINGCLOUD_EUREKASERVER模块创建一个EurekaServerMain的main方法
package cn.ps;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerMain {
public static void main(String[] args) {
new SpringApplicationBuilder(EurekaServerMain.class).web(true).run(args);
}
}
SPRINGCLOUD_EUREKASERVER模块resources写一个application.yml文件
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
#是否注册到注册中心,注册中心自己不需要注册
registerWithEureka: false
#是否抓取注册中心的注册信息
fetchRegistry: false
#是微服务和客服端用来注册和发现的地址
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
创建SPTINGCLOUD_USERSERVICE模块
SPTINGCLOUD_USERSERVICE模块pom配置
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>SPTINGCLOUD</artifactId>
<groupId>cn.ps</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>SPTINGCLOUD_USERSERVICE</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
controller包
package cn.ps.controller;
import cn.ps.entity.Comm;
import cn.ps.entity.Result;
import cn.ps.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
public class UserController {
@Autowired
UserMapper userMapper;
@PostMapping(value="/validateUser")
public Result validateUser(@RequestBody Comm comm){
List<Map> maps = userMapper.queryUser(comm.getId(), comm.getStore());
Result r=new Result();
if(maps.size()>0){
r.setCode(1);
r.setMsg("请输入正确的数值");
}
return r;
}
}
entity(Comm与数据库表连接的类)包
package cn.ps.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class Comm {
private String id;
private String store;
}
entity(Result 工具类用于判断)包
package cn.ps.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
public class Result {
private int code ;
private String msg;
private List date;
}
mapper包(与数据库建立连接的接口主要是负责sql语句)
package cn.ps.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
@Mapper
public interface UserMapper {
@Select("select * from comm where id=#{id} and store=#{store}")
public List<Map> queryUser(@Param("id")String id,@Param("store") String store);
}
SPTINGCLOUD_USERSERVICE模块创建一个UserServerMain 的main方法
package cn.ps;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableEurekaClient
@RestController
public class UserServerMain {
@RequestMapping("/")
public String home() {
return "Hello world";
}
public static void main(String[] args) {
new SpringApplicationBuilder(UserServerMain.class).web(true).run(args);
}
}
spring:
application:
name: userservice
datasource:
url: jdbc:mysql://localhost/unit02
username: root
password: ps123456
driver-class-name: com.mysql.jdbc.Driver
server:
port: 8081
eureka:
instance:
prefer-ip-address: true
hostname: localhost
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
创建SPTINGCLOUD_USERUI模块
SPTINGCLOUD_USERUI模块pom配置
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>SPTINGCLOUD</artifactId>
<groupId>cn.ps</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>SPTINGCLOUD_USERUI</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
controller包
package ps.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.client.RestTemplate;
import ps.entity.Comm;
import ps.entity.Result;
@Controller
public class UserController {
@Autowired
RestTemplate restTemplate;
@PostMapping(value="/logins")
public String logins(Comm comm){
//需要调用userservice这个微服务
String url ="http://USERSERVICE/validateUser";
ResponseEntity<Result> commResponseEntity = restTemplate.postForEntity(url,comm,Result.class);
Result body = commResponseEntity.getBody();
if(body.getCode()==1){
return "redirect:/suc.html";
}else{
return "redirect:/login.html";
}
}
}
entity(Comm与数据库表连接的类)包
package cn.ps.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class Comm {
private String id;
private String store;
}
entity(Result 工具类用于判断)包
package cn.ps.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
public class Result {
private int code ;
private String msg;
private List date;
}
SPTINGCLOUD_USERUI模块创建一个UserUiMain的main方法
package ps;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableEurekaClient
@RestController
public class UserUiMain {
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(UserUiMain.class).web(true).run(args);
}
}
SPTINGCLOUD_USERUI模块resources写一个application.yml文件
spring:
application:
name: userui
server:
port: 80
eureka:
instance:
prefer-ip-address: true
hostname: localhost
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
在resources中创建一个为static文件夹(一个简单的登录页面)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<font size="5" color="990000">请登录</font><hr>
<form name="frmManage " method="post"
action="logins" >
<font size="3" color="990000">
<label>用户名</label>
<input type="text" name="id" ><br>
<label>密 码</label>
<input type="password" name="store" ><br>
<input type="submit" value="登录" />
<font>
</form>
</body>
</html>