SpringBoot分布式taotao商城框架搭建-非dubbo项目
SpringBoot+SpringDataJPA+IDEA
先期准备
-
MySql安装好
-
IDEA
-
maven
在新建工程之前需要安装MySql并新建数据库:taotao
然后新建一个叫tb_user的表:
create table tb_user
(
id bigint auto_increment,
username varchar(50) not null comment '用户名',
password varchar(32) not null comment '密码,加密存储',
phone varchar(20) null comment '注册手机号',
email varchar(50) null comment '注册邮箱',
created datetime not null,
updated datetime not null
)
comment '用户表';
然后通过数据库操作软件Navicat 手动插入一些数据即可。
接下来开始构建工程
新建父工程:
- 打开IDEA, 点击左上角File-New-Project
-
选择Spring Initializr-Next
-
修改Group和Artifact-Next-Next-Finish
-
完成以后删除taotao-integration的src文件夹
新建子工程:
- 在taotao-integration项目上右键-New-Module-选择Maven-Next
- 给子工程一个Artifact坐标-Next
点击Next后会出现一个Module name 我将我的Module name由idea推荐的taotaocommon改为了taotao-common,此处可改可不改,然后点击Finish
-
同样的方式新建taotao-integration下的第二个子工程taotao-manager-web
-
同样的方式新建taotao-integration下的第二个子工程taotao-manager,接下来在taotao-manager工程下,新建taotao-manager项目的子工程
新建taotao-manager工程的子工程
- 在taotao-manager项目右键-New-Module-选择Maven-Next
- 修改Artifact名字为taotao-manager-interface,然后点击Next,修改Module name为taotao-manager-interface
-
同样的方式新建taotao-manager的子工程:taotao-manager-dao
-
同样的方式新建taotao-manager的子工程:taotao-manager-pojo
-
同样的方式新建taotao-manager的子工程:taotao-manager-service
完成以后项目结构为:
为各个工程添加依赖:
一共有8个pom.xml文件,复制粘贴即可
-
父工程pom.xml添加依赖
父工程(taotao-integration)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>
<packaging>pom</packaging>
<modules>
<module>taotao-common</module>
<module>taotao-manager-web</module>
<module>taotao-manager</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-integration</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>taotao-integration</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
-
子工程(taotao-common)的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-integration</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> <artifactId>taotao-common</artifactId> </project>
-
子工程(taotao-manager)的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-integration</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager</artifactId> <packaging>pom</packaging> <modules> <module>taotao-manager-dao</module> <module>taotao-manager-interface</module> <module>taotao-manager-pojo</module> <module>taotao-manager-service</module> </modules> <dependencies> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
-
子工程(taotao-manager-web)的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-integration</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager-web</artifactId> <dependencies> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-manager-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-manager-service</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> </project>
-
taotao-manager工程下的子工程的pom.xml文件
-
taotao-manager-dao的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-manager</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager-dao</artifactId> <dependencies> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-manager-pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> </project>
-
taotao-manager-interface的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-manager</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager-interface</artifactId> <dependencies> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-manager-pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
-
taotao-manager-pojo的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-manager</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager-pojo</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> </dependencies> </project>
-
taotao-manager-service的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>taotao-manager</artifactId> <groupId>com.taotao</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>taotao-manager-service</artifactId> <dependencies> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-manager-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.taotao</groupId> <artifactId>taotao-manager-dao</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> </project>
至此,所有的工程已经配置完成。如果工程名字不一样,复制标签中的依赖,然后修改依赖的工程名字即可。
-
所有工程的依赖添加完成了,可以开始写代码了
-
taotao-manager-pojo项目的java目录下新建包com.taotao.pojo,并在此包下新建类TbUser
TbUser.java
package com.taotao.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * taotao-integration-com.taotao.pojo * * @author brian * @date 2020/4/26 */ @Entity @Table(name = "tb_user") public class TbUser { @Id @Column(name = "id") private String id; @Column(name = "username") private String username; @Column(name = "password") private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
-
taotao-manager-dao项目下新建包com.taotao.mapper并在此包下新建接口:TbUserMapper
TbUserMapper.java
package com.taotao.mapper; import com.taotao.pojo.TbUser; import org.springframework.data.jpa.repository.JpaRepository; /** * taotao-integration-com.taotao.mapper * * @author brian * @date 2020/4/26 */ public interface TbUserMapper extends JpaRepository<TbUser, String> { }
-
taotao-manager-interface项目下新建包com.taotao.service并新建接口:UserService
UserService.java
package com.taotao.service; import com.taotao.pojo.TbUser; import java.util.List; /** * taotao-integration-com.taotao.service * * @author brian * @date 2020/4/26 */ public interface UserService { /** * 查询所有用户 * @return 用户列表 */ List<TbUser> findAll(); }
-
taotao-manager-service项目的java目录下新建包com.taotao.service.impl并新建类UserServiceImpl实现UserService接口
UserServiceImpl.java
package com.taotao.service.impl; import com.taotao.mapper.TbUserMapper; import com.taotao.pojo.TbUser; import com.taotao.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * taotao-integration-com.taotao.service.impl * * @author brian * @date 2020/4/26 */ @Service public class UserServiceImpl implements UserService { @Autowired private TbUserMapper userMapper; @Override public List<TbUser> findAll() { List<TbUser> all = userMapper.findAll(); return all; } }
-
taotao-manager-web项目下新建包com.taotao.controller并新建类UserController
UserController.java
package com.taotao.controller; import com.taotao.pojo.TbUser; import com.taotao.service.UserService; import com.taotao.service.impl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * taotao-integration-com.taotao.controller * * @author brian * @date 2020/4/26 */ @RestController public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/user/list", method = RequestMethod.GET) public List<TbUser> findAll() { List<TbUser> all = userService.findAll(); return all; } }
从mapper-service-controller的类都建好了。
还需要新建一个启动类
在taotao-manager-web工程下的com.taotao中新建一个类TaotaoWebApplication
TaotaoWebApplication.java
package com.taotao;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TaotaoWebApplication {
public static void main(String[] args) {
SpringApplication.run(TaotaoWebApplication.class, args);
}
}
最后还需要添加配置文件application.yml
在taotao-manager-web工程下的resources文件夹下新建application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/taotao?useSSL=false&serverTimezone=UTC
username: root
password: admin #TODO 这里需要根据你自己的数据库密码修改
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8080
此时,就可以启动项目了!!!
进入TaotaoWebApplication这个类,点击左侧启动:
启动成功标志:
此时打开浏览器,在地址栏输入:http://localhost:8080/user/list
就会返回从数据库查出来的数据。
恭喜你,一个简单的SpringBoot+SpringDataJPA的分布式项目框架就搭建好了!
manager-web工程下的resources文件夹下新建application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/taotao?useSSL=false&serverTimezone=UTC
username: root
password: admin #TODO 这里需要根据你自己的数据库密码修改
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8080
此时,就可以启动项目了!!!
进入TaotaoWebApplication这个类,点击左侧启动:
[外链图片转存中…(img-N6J5QwpY-1587890161082)]
启动成功标志:
此时打开浏览器,在地址栏输入:<http://localhost:8080/user/list>
就会返回从数据库查出来的数据。
恭喜你,一个简单的SpringBoot+SpringDataJPA的分布式项目框架就搭建好了!
过几天将尝试搭建一个SpringBoot+MyBatis+Dubbo的分布式工程,作为分布式工程项目搭建的学习记录。