SpringBoot多模块项目搭建(Maven管理、整合MyBatis,搭建、依赖、打包)

您所在的位置:网站首页 spingboot项目搭建 SpringBoot多模块项目搭建(Maven管理、整合MyBatis,搭建、依赖、打包)

SpringBoot多模块项目搭建(Maven管理、整合MyBatis,搭建、依赖、打包)

#SpringBoot多模块项目搭建(Maven管理、整合MyBatis,搭建、依赖、打包)| 来源: 网络整理| 查看: 265

SpringBoot多模块项目搭建 工程结构和依赖关系一、创建工程模块二、配置依赖父项目pomdata子模块pomdao子模块pomservice子模块pomweb子模块pom项目打包 三、整合MyBatis四、写一个新增、查找的demo

工程结构和依赖关系

工程结构: springboot-multi 子模块:data(实体类) 子模块:dao(持久层,与数据库交互) 子模块:service(业务层,处理业务逻辑) 子模块:web(controller,页面交互,启动类入口) 依赖关系:

模块模块依赖data-daodataservicedata、daowebdata、dao、service 一、创建工程模块

File → new → project → Spring Initializr →Next进入下一页面 在这里插入图片描述填写Group和Artifact →Next进入下一页面 在这里插入图片描述Next进入下一页面 在这里插入图片描述选择项目名称和位置 →Finish 在这里插入图片描述工程结构 在这里插入图片描述因为父项目是聚合体,仅仅负责聚合其他模块,删除父项目的src目录 类似父项目的创建过程,创建出子模块 在父工程右键 → new → Module → Spring Initaializr → Next 在这里插入图片描述依赖选择 →Next 在这里插入图片描述确定项目名称和位置 →Finish 重复以上创建流程,创建出dao、service、web子模块 data和service不需额外引入依赖,dao和web根据实际需求引入必要依赖,比如我这dao引入Mysql Mybatis依赖,web引入Web依赖 在这里插入图片描述 在这里插入图片描述接下来,删除每个子模块中.mvn、.gitignore、HELP.md、mvnw、mvnw.cmd, 除了web模块的其他模块的Applicatin启动类、sources下的application.properties 项目结构如下在这里插入图片描述

二、配置依赖

父项目需要修改打包方式为pom,build的内容需要替换,具体的配置:

父项目pom 4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.0.RELEASE com.wl multimodule 0.0.1-SNAPSHOT pom multimodule Demo project for Spring Boot 1.8 UTF-8 UTF-8 data dao service web org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.projectlombok lombok true compile org.apache.maven.plugins maven-compiler-plugin ${java.version} ${java.version} org.apache.maven.plugins maven-surefire-plugin true data子模块pom 4.0.0 com.wl multimodule 0.0.1-SNAPSHOT com.wl data 0.0.1-SNAPSHOT data Demo project for Spring Boot dao子模块pom 4.0.0 com.wl multimodule 0.0.1-SNAPSHOT com.wl dao 0.0.1-SNAPSHOT dao Demo project for Spring Boot com.wl data 0.0.1-SNAPSHOT org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.2 mysql mysql-connector-java runtime service子模块pom 4.0.0 com.wl multimodule 0.0.1-SNAPSHOT com.wl service 0.0.1-SNAPSHOT service Demo project for Spring Boot com.wl data 0.0.1-SNAPSHOT com.wl dao 0.0.1-SNAPSHOT web子模块pom 4.0.0 com.wl multimodule 0.0.1-SNAPSHOT com.wl web 0.0.1-SNAPSHOT web Demo project for Spring Boot com.wl data 0.0.1-SNAPSHOT com.wl dao 0.0.1-SNAPSHOT com.wl service 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-web 项目打包

然后package打包,第一次不需要clean,以后每次打包先clean一下。按照流程走,打包是没有问题的 到这里项目搭建和打包已经是可以了,后面是整合mybatis和一个demo 在这里插入图片描述

三、整合MyBatis

web下的application文件填写配置信息 在这里插入图片描述`server: port: 8080

db: hikari: jdbcUrl: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=UTC username: root password: root driverClassName: com.mysql.jdbc.Driver connectionTestQuery: SELECT 1 connectionTimeout: 30000 idleTimeout: 600000 maxLifetime: 1800000 maximumPoolSize: 20 minimumIdle: 1 ` dao增加MybatisConfig 在这里插入图片描述配置类@Primary可以不加,我是想接下来配置多数据源,所以这样写的

@Configuration @MapperScan(basePackages = {"com.wl.dao.mapper"}) public class MybatisConfig { @Bean("hikariDataSource") @Primary @ConfigurationProperties(prefix = "db.hikari") public DataSource getHikariDataSource() { return new HikariDataSource(); } @Bean("hikariTransactionManager") @Primary public DataSourceTransactionManager getDataSourceTransactionManager() { return new DataSourceTransactionManager(getHikariDataSource()); } @Bean("hikariSqlSessionFactory") @Primary public SqlSessionFactory sqlSessionFactory(@Qualifier("hikariDataSource") DataSource dataSource) throws Exception { final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:/mapper/**/*.xml")); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBean.getObject(); return sqlSessionFactory; } } 四、写一个新增、查找的demo

web、service、dao、data内容如下: 在这里插入图片描述在这里插入图片描述

// 实体类 @Data public class User { private Integer id; private String username; private String gender; private Integer age; } // mapper文件 public interface UserMapper { int insert(User user); User getByName(String name); } // 映射的xml文件 id, username, gender, age insert into mul_user (username, gender, age) values (#{username,jdbcType=VARCHAR}, #{gender,jdbcType=VARCHAR}, #{age,jdbcType=BIGINT}) select from mul_user where username=#{username,jdbcType=VARCHAR} // service public interface UserService { String insert(User user); User getByName(String username); } // service实现类 @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public String insert(User user) { int result = userMapper.insert(user); if (result == 1) { return "success"; } return "fail"; } @Override public User getByName(String username) { return userMapper.getByName(username); } } @Controller public class UserController { @Autowired private UserService userService; @GetMapping("/user/addUser") @ResponseBody public String addUser(User user) { return userService.insert(user); } @GetMapping("/user/getUserByName") @ResponseBody public User getUserByName(String username) { return userService.getByName(username); } }

数据库建表 在这里插入图片描述启动服务,新增user http://localhost:8080/user/addUser + 插入数据(应该用post,为方便浏览器测试,新增也是使用的GetMapping,get请求) 在这里插入图片描述表中插入了数据 在这里插入图片描述调用查询 http://localhost:8080/user/getUserByName?username=doudou在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3