Spring教程
1、spring是一个轻量级开源的javaee框架
2、IOC:控制反转,把创建对象过程交给spring进行管理
Aop:面向切面,不修改源代码进行功能增强
2、控制反转:通过容器,可以使用容器中的对象(容器中穿件了对象,对象属性赋值了,对象也组装好了)
spring就是一个容器,可以管理对象,创建对象,给属性赋值
DI(依赖注入):是IoC的一种技术实现,spring框架使用DI实现IoC
3、java反射机制,能够直接操作任意对象的内部属性及方法;加载完类后,产生一个class类的对象,对象包含了完整的类的结构信息,通过这个对象看到类的结构,称之为反射
4、依赖注入:利用set方法进行注入
5、使用无参构造创建对象,默认;对于有参构造创建对象有以下方法:
(1)下标赋值 (2)类型 (3)参数名
6、在配置文件中加载时候,容器中管理的对象就已经初始化了,实例化的对象只有一个;
7、<bean>中常用:
id:bean的唯一标识符,也就是相当于我们学的对象名
class:bean对象所对应的全限定名:包名+类型
name:也是别名,可以同时取多个别名
8、import一般用于团队开发,可以将多个配置文件导入合并为一个,使用总配置即可
9、依赖注入
(1)构造器注入
(2)set方式注入
(3)拓展注入
10、使用IDE创建maven工程时一直中文输出乱码,按照网上教程将所有可修改地方全部改为UTF-8均不行,最后,将所有设置UTF-8的地方全部删除,将setting---fileencoding全部改为GBK,问题解决

11、p命名空间跟c命名空间不能直接用,需要依赖xml注入
<xmlns:p = "................................">
12、bean的作用域:
(1)单例模式(spring 默认机制):scope ="sigleton"
(2)原型模式:每次从容器中get的时候,都会产生一个新对象
(3)其余request .session.application只在web开发中使用
13、Bean的自动装配
(1)ByName:会自动在容器上下文中查找和自己对象set方法后面的值对应的beanid;需要保证所有Bean的id 唯一,并且这个Bean 需要和自动注入的属性的set方法的值一致
(2)ByType:会自动在容器上下文查找和自己对象属性类型相同的Bean,需保证类型全局唯一
14、使用注解须知:
(1)导入约束:context约束
(2)配置注解的支持:context:annotation-config/
@Autowired(如果定义了autowired的required属性为false,说明这个对象可以为Null,否则不允许为空) :
直接在属性上使用即可,也可以在set方式上使用;使用Autowired可以不用编写set方法,前提是自动装配属性在IOC容器中存在,且符合名字byname!
如果显示定义了autowired的属性为false,说明这个对象可以为Null,否则不允许为空
如果@autowired自动装配环境比较复杂,无法通过一个注解完成,可以通过@Qualifier(value="")去配置
区别:
@Autowired通过Bytype方式实现,而且必须要求这个对象存在(常用)
@Resource 默认通过byname实现,找不到名字,通过Bytype实现,两个都找不到,报错
15、xml与属性的最佳实践:xml一般用来管理Bean,注解只负责完成属性的注入
16、invoke方法: 处理代理实例上的方法调用并返回结果
17、AOP:提供声明式事务,允许用户自定义切面
18、动态代理代理的是接口
19、实现AOP的方法:
方法一:使用spring的API接口
方法二:自定义实现AOP,主要是切面定义
方法三:使用注解实现
20、事务:把一组业务当做一个业务来做,要么都成功,要么都失败
21、事务设计数据的一致性问题,非常重要!
22、事务的ACID原则:
原子性 一致性 隔离性(多个业务可能操作同个资源,防止资源损坏) 持久性(事务一旦提交,结果都不会被影响,被持久化的写到存储器中)
23、lombok 的常用注解:
@Data:注解在类上,提供类所有属性的getting或setting方法,还有equals,toString等方法
@Setter:注解在属性上,提供Setting方法
@Getting:注解在属性上,提供getting方法
24、mysql存储引擎engines:mysql中的数据用各种不同的技术存储在文件(或内存)中
(1)InnoDB:默认的存储引擎;为处理巨大数据量时的最大性能设计,他的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的
(2)MyISAM:最常用的存储引擎,不是默认的,不支持事务
(3)MEMORY:数据存放在内存中,hash索引
浙公网安备 33010602011771号