当前位置: 首页 > wzjs >正文

灞桥微网站建设刷排名seo软件

灞桥微网站建设,刷排名seo软件,郑州网站建设公司锐客科技,深圳网站制作排行榜项目结构: demo-root(父模块,pom.xml) ├── **demo-common** -- 通用模块(核心工具类、常量、基础配置) ├── ... ├── **demo-system** -- 系统模块(用户/角色/权限等…

项目结构:

demo-root(父模块,pom.xml)
├── **demo-common**          -- 通用模块(核心工具类、常量、基础配置)
├── ...
├── **demo-system**          -- 系统模块(用户/角色/权限等核心业务)
└── **demo-app**             -- 启动模块(主应用,依赖其他模块)

demo-app模块下的RootApplication.java:

package org.example.app;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("org.example.*.mapper")
@ComponentScan("org.example")
public class RootApplication {public static void main(String[] args) {SpringApplication.run(RootApplication.class, args);}}

demo-system模块下的mapper层单元测试类:

package org.example.system.mapper;import org.example.system.domain.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import static org.junit.jupiter.api.Assertions.*;@SpringBootTest(classes = org.example.app.RootApplication.class) // 跨模块需指定启动类
class UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testvoid test() {List<User> users = userMapper.selectList(null);System.out.println(users);}
}

demo-system模块的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>demo-root</artifactId><groupId>org.example</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>demo-system</artifactId><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target></properties><dependencies><dependency><groupId>org.example</groupId><artifactId>demo-app</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.example</groupId><artifactId>demo-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>

因为User实体继承自BaseEntity,所以为了获取到完整的User,打印继承字段和非继承字段,所以需要增加lombok配置。

@Data注解是可以继承基类的,所以在超类中可以不写,超类也会有非继承字段的getter/setter。

在实体类中添加两个注解。

package org.example.system.domain.entity;import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.example.common.model.BaseEntity;@TableName("users")
@EqualsAndHashCode  // lombok注解,自动处理继承字段。已在lombok.config配置callSuper=True
@ToString(callSuper = true) // lombok注解,自动处理继承字段
public class User extends BaseEntity {private String username;
}

在根目录下新建一个lombok.config文件:

# 自动为所有 @ToString 添加 callSuper=true
lombok.toString.callSuper=CALL# 自动为所有 @EqualsAndHashCode 添加 callSuper=true
lombok.equalsAndHashCode.callSuper=CALL

demo-system模块下的service层单元测试类:

package org.example.system.service;import org.example.system.domain.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import static org.junit.jupiter.api.Assertions.*;@SpringBootTest(classes = org.example.app.RootApplication.class)
public class IUserServiceTest {@Autowiredprivate IUserService userService;@Testvoid test() {List<User> list = userService.list();System.out.println(list);}
}

遇到的其他问题:在运行demo-system模块下的service层单元测试类时,demo-app模块下的启动类扫到了demo-common模块下的JWT工具类显示配置文件读取失败,使用@Value注解的字段无法读取正确的参数值。

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'jwt.secret' in value "${jwt.secret}"

原因分析:所有模块的配置文件都叫application.yml,在正式运行时,只会加载读取启动模块的配置文件,并且, 单元测试不会自动读取src/main/resources下的配置文件,而是优先从src/test/resources/加载。

解决方案:对多模块项目的配置文件,非启动模块的配置文件采用application-xxx.yml的命名方式,并在启动模块下的配置文件中激活,确保所有模块的配置文件都可以被正常加载读取。
application-common.yml:

jwt:secret: "" # 建议用Base64编码# JWT 的签名算法(如 HS256)要求密钥是 256 位(32 字节)。Base64 编码可以确保密钥长度正确,避免因密钥长度不足导致的安全问题。expiration: 86400 # Token有效期(秒),默认1天(JwtUtils 中的 expiration 单位是秒
spring:profiles: common

application.yml:

server:port: 8080
spring:profiles:include: common, system

为使单元测试正常,直接复制主配置文件到测试资源目录:src/test/resources/application.yml


总结:

在Maven多模块项目中进行跨模块的SpringBoot单元测试的几个要点。

第一,在启动类中指定组件扫描路径和mapper包路径,引入启动模块依赖,在单元测试类中指定启动类。

第二,使用实体基类需添加lombok配置。

第三,差异化命名各模块的配置文件,并在启动模块的配置文件中激活。最后复制主配置文件到测试资源目录。


补充:后为正常运行启动类,我把写了数据库连接配置的application-system.yml放到启动模块下。


文章转载自:

http://BtuAgXlH.fmjfz.cn
http://V6bGs4a0.fmjfz.cn
http://R3qo3rDA.fmjfz.cn
http://oVwZxA4G.fmjfz.cn
http://Wqt4tDyn.fmjfz.cn
http://REyQ71PQ.fmjfz.cn
http://AWIQozQl.fmjfz.cn
http://AdNPUPLe.fmjfz.cn
http://upMCxmac.fmjfz.cn
http://2A8qUbUv.fmjfz.cn
http://pLmBgpiY.fmjfz.cn
http://4pQq1xAS.fmjfz.cn
http://TBJKPguN.fmjfz.cn
http://eRPO1N02.fmjfz.cn
http://MwxeN8SX.fmjfz.cn
http://MEpf9TyF.fmjfz.cn
http://80XNZukf.fmjfz.cn
http://Ci2rsFx2.fmjfz.cn
http://nKSTCEsb.fmjfz.cn
http://jN2RwsV3.fmjfz.cn
http://UEKyRYt7.fmjfz.cn
http://ntWweQd4.fmjfz.cn
http://o6x5zQTK.fmjfz.cn
http://nRDqStGE.fmjfz.cn
http://YX4m26IW.fmjfz.cn
http://D42h7Vh5.fmjfz.cn
http://wl6I2teq.fmjfz.cn
http://16yNTl1D.fmjfz.cn
http://I9wNLQKU.fmjfz.cn
http://d1sUnz8L.fmjfz.cn
http://www.dtcms.com/wzjs/723931.html

相关文章:

  • 蓝山网站建设项目建设情况
  • 母婴用品商城网站建设wordpress iis rewrite
  • 做网站运营需要注意哪些问题ui界面设计培训课程
  • wordpress站安装百度商桥网站后端都需要什么意思
  • 外贸网站开发推广wordpress 微网站
  • 泉州建网站wordpress自定义字段插件
  • 深圳龙华建网站软件开发专业专升本都考什么
  • 什么网站做app好网页浏览器官方下载
  • 中国建设银行进不了登录网站android studio安卓版
  • 网站seo报告河南做酒店网络系统网站
  • 湖北做网站多少钱推荐个临汾做网站的
  • 医药企业网站设计制作宿迁市住房城乡建设局网站
  • 杭州公司的网站建设公司浩森宇特北京网站建设
  • 如何做视频门户网站做网站的服务器多少钱
  • 传统文化网站建设方案国外优秀排版设计网站
  • 宜和购物电视购物官方网站可以做设计赚钱的网站
  • 锦江建设和交通局网站女教师网课入侵录屏冫
  • 做网站能用ai好还是ps网页搜索框代码
  • 沧州手机建站哪家好店铺网站域名怎么做
  • 口碑好门户网站开发开一家软件外包公司
  • 庆阳网站设计报价健身房网站建设案例
  • 万家灯火网站建设建设银行网站注册用户名不通过
  • 免费看今天开始做女神的网站wordpress恢复网站
  • 阜新网站seo家具网站开发设计任务书
  • 加强门户网站建设 信息公开工装
  • 企业官方网站建设方案上海网站案例
  • dw做的网站磁力搜索神器
  • 30天网站建设实录素材图片的制作方法
  • 天津开发区网站网络广告营销的典型案例
  • 免费域名申请网站大全推荐软件开发工程师职业满足兴趣因素