本文只记录面试过程中不会的
小天才只要小天才
- 如何自定义注解
创建一个接口,然后使用@interface关键字标记它。在这个接口中,我们可以使用无参数方法表示注解的成员。
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserAccess {
String value() default "";
}
- Springboot为什么是约定大于配置的?
参考:https://blog.csdn.net/qq_37840993/article/details/109061752
- Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在targe文件夹下面
- spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一
- application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等
mysql如何缓解慢写入问题?
接口慢怎么解决?代码接口慢?sql慢?
- 代码问题:可以使用日志来记录每个接口的运行时间或者使用性能分析工具Profiler进行分析,或者进行压测JMeterhttps://blog.51cto.com/u_16213328/8474119
- Sql问题:https://www.javalearn.cn/#/doc/MySQL/%E9%9D%A2%E8%AF%95%E9%A2%98?id=_5-%e5%a6%82%e4%bd%95%e4%bc%98%e5%8c%96%e6%9f%a5%e8%af%a2%e8%bf%87%e7%a8%8b%e4%b8%ad%e7%9a%84%e6%95%b0%e6%8d%ae%e8%ae%bf%e9%97%ae
mybatis中为什么#{}能防止sql注入?
MyBatis的#{}之所以能够预防SQL注入是因为底层使用了PreparedStatement类的setString()方法来设置参数,此方法会获取传递进来的参数的每个字符,然后进行循环对比,如果发现有敏感字符(如:单引号、双引号等),则会在前面加上一个’/'代表转义此符号,让其变为一个普通的字符串,不参与SQL语句的生成,达到防止SQL注入的效果。dao接口能重载吗?
https://blog.csdn.net/JSANXWT/article/details/134040847线程池阻塞队列满了怎么优化呢?
https://blog.csdn.net/JavaJasper/article/details/136007537@Resources根据名称没找到bean那可以根据type来查找吗?
- Autowired默认按照bean类型查找(bean),如果找到多个时,会再次尝试根据name进行匹配,匹配不到报错。
- Resource默认按照bean名字进行查找(bean),找不到会重新根据类型查找。(如果设置了name并且找不到会报错,不会根据类型找)