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索引

posted on 2022-05-23 16:27  ChanXM  阅读(455)  评论(0)    收藏  举报

导航