2021-11-5最近问题整理

1.idea启动时读不到其他配置文件中配置得属性

启动配置中选Build Project

 2.@ConfigurationProperties初始化时读不到配置文件中的值

原因:我把属性写在了application-cache.yml文件中,但是没有把cache标签加到application.yml文件中

解决办法

 3.pd生成ddl

1.多个表同时生成ddl

 

 2.单个表得ddl

4.枚举类或者其他value类型得返回try catch

public class EmployeeCacheConfiguration {
    /**
     * 时间
     */
    Long time;
    /**
     * 单位
     */
    String timeUnit;

    public TimeUnit getTimeUnit(){
        try{
            return TimeUnit.valueOf(timeUnit);
        }catch (Exception e){
            return TimeUnit.HOURS;
        }
    }
}

6.@SuperBuilder

@Builder并不支持父类成员属性的构造,@SuperBuilder注解的出现,就是用来解决这个问题。父类和子类上都加上@SuperBuilder,这样子类就可以正常获取到父类的成员属性进行builder构造了。

//子类
@SuperBuilder
@FieldDefaults(level = AccessLevel.PRIVATE,makeFinal = true)
public class InvoiceTypeTaxAggregate extends AbstractState

//父类
@Getter
@SuperBuilder
@FieldDefaults(level = AccessLevel.PROTECTED)
public abstract class AbstractState {

7.分享一段有文化的代码

我有一个实体,想获得yml文件中配置的信息,但是这个实体是不被spring管理的Bean。

解决思路,在调用这个实体时,把所需参数传入,并且是在调用者构造方法中初始化参数

@Slf4j
@FieldDefaults(level = AccessLevel.PRIVATE)
public class EmployeeCache {

    Long time;

    TimeUnit timeUnit;

    /**
     * personId为key  员工实体为value
     */
    public final Cache<Long, Employee> personIdCache;
    /**
     * accountId为key 员工实体为value
     */
    public final Cache<String, Employee> accountIdCache;
    /**
     * 在职人员信息缓存
     */
    public final Cache<EmployeeId, com.ai.ep.domain.employee.Employee> hiredEmployeeCache;
    /**
     * 在职和离职人员信息缓存
     */
    public final Cache<EmployeeId, com.ai.ep.domain.employee.Employee> hiredOrLeftEmployeeCache;

    @Builder
    public EmployeeCache(Long time,TimeUnit timeUnit){
        this.time = time;
        this.timeUnit = timeUnit;
        personIdCache = Caffeine.newBuilder()
                //存活时间十分钟
                .expireAfterWrite(this.time, this.timeUnit)
                .maximumSize(200)
                .build();
        accountIdCache = Caffeine.newBuilder()
                //存活时间十分钟
                .expireAfterWrite(this.time, this.timeUnit)
                .maximumSize(200)
                .build();
        hiredEmployeeCache = Caffeine.newBuilder()
                //存活时间十分钟
                .expireAfterWrite(this.time, this.timeUnit)
                .maximumSize(200)
                .build();
        hiredOrLeftEmployeeCache = Caffeine.newBuilder()
                //存活时间十分钟
                .expireAfterWrite(this.time, this.timeUnit)
                .maximumSize(200)
                .build();
    }

}
@Service
@Slf4j
@FieldDefaults(level = AccessLevel.PRIVATE)
public class DefaultEmployeeRepository implements EmployeeRepository, EmployeeTranslatorRepository {

    @DubboReference(version = "1.0.0", check = false, registry = "mdm-registry")
    IEmployeeQuerySv employeeQuerySv;

    @DubboReference(version = "1.0.0", check = false, registry = "account-employee-registry")
    IAccountStaffQueryRPCSV accountStaffQueryRpcSv;

    final EmployeeConverter converter;
    //读取yml配置信息
    final EmployeeCacheConfiguration employeeCacheConfiguration;

    final EmployeeCache employeeCache;
    
    //被spring管理的bean  在程序启动的时候会调用bean的构造方法
    public DefaultEmployeeRepository(EmployeeConverter converter, EmployeeCacheConfiguration employeeCacheConfiguration) {
        this.converter = converter;
        this.employeeCacheConfiguration = employeeCacheConfiguration;
        this.employeeCache = EmployeeCache.builder().time(employeeCacheConfiguration.getTime()).timeUnit(employeeCacheConfiguration.getTimeUnit()).build();
    }
}

8.把一个map中的所有value作为list返回

我之前是把map循环了一遍,一个一个放到List中,然后再返回

然后发现有个简单的写法 ArrayList<>(map.values());

Map<EmployeeId, com.ai.ep.domain.employee.Employee> all = new HashMap<>();
return new ArrayList<>(all.values());

9.@EqualsAndHashCode(callSuper = false,of = {"id"})

不用手动重写equals和hashcode方法了

of中指定对比的属性是谁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于北邮-2021-软件工程-期末复习.rar,其实际内容应该包含了北邮软件工程课程的期末复习相关资料。这些资料可能包括了课堂讲义、考试重点、习题解答、历年试卷等内容,有助于帮助学生复习和准备考试。此外,该压缩文件可能也包含了一些软件工程方面的技术文献、著作或工具等资源,供学生自行查阅和学习。 软件工程是计算机科学的一个重要分支,旨在研究关于软件的开发、管理和维护等方面的最佳实践和方法。在学习软件工程的过程中,需要不断运用各种工具和技术,例如需求分析、设计模式、测试驱动开发、代码版本管理等。因此,掌握软件工程技能对于未来从事软件开发的工程师和研究者来说都是非常重要的。 总之,北邮-2021-软件工程-期末复习.rar是一个包含了软件工程课程复习相关资料的压缩文件,对于学习软件工程的同学们来说,它是一份宝贵的资源。在复习过程中,我们需要认真审核其中的内容,结合课堂实际情况,制定个人化的复习计划,不断加强基础知识的掌握,并结合实际应用,提高自己的软件开发能力。 ### 回答2: 北邮-2021-软件工程-期末复习.rar文件是北邮2021年软件工程课程的期末复习资料压缩包。其中包含了软件工程课程相关的学习资料和复习材料。在这个压缩包中,可能包括课件、PPT、习题和答案、教材、参考书籍、课程大纲等等。这些材料都是为了帮助学生进行软件工程课程的有效学习和备考复习所准备的。 该压缩包的目的是为学生提供一个集中、整理好的资源库,方便学生在期末复习阶段能够迅速找到所需资料。通过使用该压缩包,学生可以更加高效地进行软件工程知识的巩固和回顾,更好地理解和掌握课程中的关键概念和技术。 对于学生而言,打开这个压缩包后,可以根据自己的需要选择具体的学习材料进行查阅和使用。同时,也可以根据课程大纲或者考试的重点,有针对性地进行复习,并通过做习题巩固知识。 总之,北邮-2021-软件工程-期末复习.rar是一份为学生提供软件工程课程复习资料的压缩包,通过使用其中的学习资料,学生可以更加高效地进行软件工程知识的复习和巩固,为期末考试做好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值