1 熟练的书写CRUD语句
假设此时有一张user表;
1.1 增加
insert into user(name , age , address) values(‘张三’ , 22 , ‘河南省郑州市’ );
1.2 删除
delete from user where userId = 1;
1.4 修改
update user set name = ‘王五’ , age = 20 , address = ‘河南省驻马店市’ where userId = 1;
1.5 查询
select * from user where userId = 1;
2 数据源的作用是什么?
数据源中存储的是数据库连接,当程序启动时,数据源自动创建一些数据库连接并存放到连接池中。当我们需要数据库连接时直接从连接池中取,而不是在重新new了,这样做的好处是效率高。因为数据库连接的创建与销毁都是资源消耗极大的操作,减少这类操作的次数可以大大提高系统效率。同样的,当我们需要关闭数据库连接时,并不是close了,而是放回到池中去;
3 Spring中类上常用的注解
@Component @Repository @Service @Controller
4 Spring的核心容器为什么是单例创建的?
在Spring中有两个核心容器,它们分别是BeanFactory和ApplicationContext;
其中BeanFactory是Spring萌芽阶段使用的核心容器,它采用的是懒加载,也就是多例。哪里需要就往哪里实例化;
而ApplicationContext是在BeanFactory基础上增强的一个核心容器。它采用立即加载,是单例的。
4.1 单例的优缺点
优点:
单例是处处引用一个实例化对象,所以new关键字使用的少,效率就会高;
因为对象创建的少,所以垃圾回收器压力就会小;
缺点:
因为是一个对象被处处引用,所以在并发环境下它是线程不安全的;
5 Spring的AOP基于什么?
基于动态代理;
采用两种,分别是JDK的动态代理和基于CGLIB的动态代理;
6 Spring中对象注入的几种方式
- 构造方法注入;
- set方法注入;
- 注解注入{
这里面会用到三个注解,分别是:@Autoride @Qualifier @Resource;
@Autoride是自动注入的意思,它的注入规则是按类型。如果在核心容器中没有一个键值对和成员变量类型一致就直接报错;
如果有一个就直接注入;
如果有多个,就会使用成员变量的变量名作为id在类型匹配的键值对中寻找,如果没有一个键值对的id == 变量名就直接报错;
@Qualifier是按id进行注入的 :它在进行成员变量注入的时候需要和@Autoride进行连用;
@Resource是按id进行注入的:但它和@Qualifier的区别在于它可以直接单独使用,不需要@Autoride的配合;
}; - 静态工厂方法注入;
- 实例工厂方法注入;
7 Spring中自动装配的五种方式
- no:不自动装配;
- default:和上一个最近的标签采用同样的装配方式;
- byName:利用id进行装配;
- byType:利用class进行装配;
- constructor:利用构造方法进行装配,其实它真正采用的还是byType;
8 Spring中通知的五种形式
前置 后置 异常 最终 环绕;
9 覆写与重载
覆写:
覆写建立在继承的基础上;
它的含义是子类中把父类中的某个方法重新写了一遍,改变了方法体里面的具体操作。使该方法更具自己的特点;
但是对于覆写的限制是:
访问修饰符:不能大于父类;
返回值类型 方法名 参数列表均相同;
重载:
它的含义是在一个类中,可以存在多个重名方法。这些方法的参数列表存在形参个数 位置 类型的不同;
对于访问修饰符和返回值类型它并不做要求;
10 自身以后的学习路线
后端:Java语言基础【√】 -> 面向对象技术【√】 -> 反射 -> 基础类库-> 集合 -> [ -> 异常 -> I/O -> 泛型 -> 注解 ] -> MySQL -> 多线程 -> JVM -> JavaWeb【√】 -> SSM【√】 -> SpringBoot -> 未知领域;
前端:HTML5 -> CSS3 -> JS -> jQuery -> { Ajax + JSON } -> Vue;