《一步步搭建Springboot+zk+dubbo分布式微服务博客》之基础框架搭建篇4:测试mybatisplus操作mysql(version4)
创建子项目sdubbo-web用于前端统一显示模块,测试mybatisplus能否操作mysql
注意目前本节创建的用户及实体只是临时测试用的,以后会抽取到用户服务里。
============sdubbo-web=====pom.xml========
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.it123</groupId>
<artifactId>sdubbo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>sdubbo-web</artifactId>
<name>springboot-dubbo-web</name>
<url>http://www.it123.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.it123</groupId>
<artifactId>sdubbo-common-face</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>1.2.2</version>
</dependency>
<!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> </dependency> -->
</dependencies>
</project>
==========application.properties文件内容:=======
spring.application.name=sdubbo-web
server.port=80
#项目名字
dubbo.application.name=sdubbo-web
demo.service.version=1.0.0
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
#dubbo注册中心的地址和端口,主要是获取服务地址用
dubbo.registry.address=zookeeper://localhost:2181
sdubbo-web.timeout = 5000
#异常抛出
spring.mvc.throw-exception-if-no-handler-found=true
#redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
#
spring.redis.timeout=3000
spring.session.store-type=redis
#
spring.freemarker.suffix=.html
spring.freemarker.request-context-attribute=request
#本地内容映射/挂载到springboot的静态static目录中
web.upload-path=D:/home/oss/file
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\classpath:/static/,classpath:/public/,file:${web.upload-path}
//启用aop
spring.aop.auto=true
#mysql的链接配置,临时本节用的,以后web层都不能链接mysql
spring.datasource.url=jdbc:mysql://localhost:3306/sdubbo?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
=========Users服务临时测试用的=以后我们会抽取到单一的服务作为用户服务=========
Users 实体类
package org.it123.sdubbo.model.system;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 用户实体类
*/
@TableName("tab_sys_users")
public class Users implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String id;
private String name;
private String faceImg;
private String email;
private String password;
private String state;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFaceImg() {
return faceImg;
}
public void setFaceImg(String faceImg) {
this.faceImg = faceImg;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
@Override
public String toString() {
return "Users [name=" + name + ", faceImg=" + faceImg + ", email=" + email + ", password=" + password
+ ", state=" + state + "]";
}
}
==============UsersService 接口==============
package org.it123.sdubbo.web.service;
import org.it123.sdubbo.web.model.Users;
import org.springframework.stereotype.Service;
@Service
public interface UsersService {
int add(Users users);
}
=============UsersServiceImpl 实现类=========
package org.it123.sdubbo.web.service.impl;
import org.it123.sdubbo.web.dao.UsersDao;
import org.it123.sdubbo.web.model.Users;
import org.it123.sdubbo.web.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UsersServiceImpl implements UsersService {
@Autowired
private UsersDao usersDao;
@Override
public int add(Users users) {
return usersDao.insert(users);
}
}
操作层类
package org.it123.sdubbo.web.dao;
import org.it123.sdubbo.web.model.Users;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Repository
public interface UsersDao extends BaseMapper<Users> {
}
控制器层
package org.it123.sdubbo.web.controller;
import org.it123.sdubbo.web.model.Users;
import org.it123.sdubbo.web.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UsersController {
@Autowired
private UsersService usersService;
@GetMapping("/demo")
public String demo() {
Users users = new Users();
users.setName("1");
users.setName("IT123私塾");
users.setPassword("123456");
int mum = usersService.add(users);
if (mum > 0) {
return "增加成功";
} else {
return "增加失败";
}
}
}
入口文件启动类
package org.it123.sdubbo.web;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwagger2
@EnableDubbo
@ComponentScan(basePackages = {"org.it123.sdubbo.*"})
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class webApplication {
public static void main(String[] args) {
SpringApplication.run(webApplication.class, args);
}
}