java开发笔记(20210112)

1、异步方法和调用方法一定要写在不同的类中 ,如果写在一个类中,是没有效果的!

原因:spring对@Transactional注解时也有类似问题,spring扫描时具有@Transactional注解方法的类时,是生成一个代理类,由代理类去开启关闭事务,而在同一个类中,方法调用是在类体内执行的,spring无法截获这个方法调用。

2、非web项目启动不占用端口 springboot项目引用spring-web 不占用端口

spring.main.web-application-type=none

3、org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.lang.Integer

mybatis基本类型返回属性的属性名写成了resultMap会报错

遇到这种问题,一般都是因为在xml中基本类型返回属性的属性名写成了resultMap。

resultMap="java.lang.Integer"

改为:

resultType="java.lang.Integer"

注意:MyBatis的报错有时候不是很准,所以不要只看不要只看错误信息中提到的文件关联的文件。有时候可能是另一个xml导致的错误。

4、System.setProperty()

//System.setProperty 相当于一个静态变量 ,存在内存里面!

5、mysql小知识

查看表结构 show full COLUMNS from tableName;

查看表索引 show index from tableName;

执行计划 explain   SQL语句

6、java可变长的形参声明格式:dataType...parameters。

在java语言开发中,从JDK1.5以后,java允许定义形参长度可变的参数从而允许为方法指定数量不确定的形参。如果在定义方法时在最后一个形参类型后增加3个点即(...);则表明该形参可以接受多个参数值,多个参数值会被当做数组传入。

7、枚举类型的使用 https://www.jianshu.com/p/d2cb1355653c

8、springboot中 bootstrap和application有什么区别?

加载顺序上的区别:

    bootstrap.yml(bootstrap.properties)先加载

    application.yml(application.properties)后加载

    bootstrap.yml 用于应用程序上下文的引导阶段,由父Spring ApplicationContext加载。父ApplicationContext 被加载到使用application.yml的之前。 在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

bootstrap/ application 的应用场景:

    bootstrap.yml 和application.yml 都可以用来配置参数。

     application 配置文件这个容易理解,application.yml 可以用来定义应用级别的,主要用于 Spring Boot 项目的自动化配置。

     bootstrap 配置文件有以下几个应用场景。 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息; 一些固定的不能被覆盖的属性 一些加密/解密的场景。bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。

猜你喜欢

转载自blog.csdn.net/qq_36073688/article/details/112548297