1.框架:

将一些公用的模块进行集成,通过框架的形式进行管理(事务控制、权限控制(Shiro,日志收集log

2.Spring框架

Servlet+jsp           3000

SSH:          Struts2(重配置)+ Spring(业务层框架) +Hibernate(ORM)(500万)小中型企业 网站-办公软件

SSM:                      SpringMVC +Spring(业务层框架)+Mybatis(持久层框架)

 

3.Spring框架:

Spring框架是现在所有企业中都需要“使用”的框架,2大核心技术IOCDI,AOP.Spring框架内部实现事务控制。只要引用了Spring的事务控制,从此程序员无需关注事务。

作用:Spring能够整合现阶段所有的主流框架,让程序调用浑然一体。方便管理。---粘合剂(胶水)

4.Spring的学习计划:

1.SpringIOC和DI

2.简化Spring配置

3.SpirngAOP

4.AOP的练习

5.Spring整合JDBC和声明式事务处理。

 

5.SpringIOC

IOC是控制反转

对象的创建过程由Spring容器来管理,程序员从此无需关注对象的创建过程,Spring容器管理对象的生命周期。

Person p1 = new Person(); -----程序员自己手动编辑

Person p2 = Spring容器.getXXX()方法;  Spring容器创建

Spring的入门案例

6.Spring的入门案例:

1.导入jar

2.创建实体类(javaBean)

3.编辑配置文件(1.引入配置文件的头标签  2.编辑配置类)

4.启动Spring容器(内部创建对象)

5.Spring容器中获取对象

 

7.具体实现步骤:

Bean:只要被Spring管理的类称之为bean

1.引入jar包文件:7

Spring的入门案例

2.定义实体类

Spring的入门案例

3.编辑配置文件

默认的名称:applicationContext.xml

名称可以自定义:application-XXX.xml

Spring的入门案例

4.启动Spring容器

Spring的入门案例

Schema: 让指定的标签生效的

DTD: Mybatis中的配置文件使用

 

引入方式:

1.直接拷贝赋值

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd ">

</beans>

8.Spirng创建对象的原理:

问题:Spring如何创建对象,对象是如何存储的,用户时如何获取的对象?

1.Spring容器启动时,首先会加载spring的核心配置文件。

2.Spring器逐行进行解析xml配置文件

3.当解析bean标签时开始创建对象,根据class属性中的数据通过反射机制创建对象。

4.将创建好的对象存入Spring所维护的Map<key,value> key就是bean中的ID.

value就是生成的对象。

Spring的入门案例

 

5.用户传入key,通过key来获取Map中的value(对象)

6.Spring容器中的对象的生命周期默认条件下与Spring容器“同生共死”

 

9.Spring容器获取对象的方式:

1.通过ID对象对象

HelloSpring helloSpring = (HelloSpring) context.getBean("helloSpring");

2.通过class类型获取对象

Spring的入门案例

说明:通过class类型获取时,可能会有风险,如果出现相同的calss类型会报错

10.头文件的引入:

1.拷贝

2.自动生成

1.引入约束文件

作用:能够出现自动提示标签

Spring的入门案例

              2.添加约束文件

Spring的入门案例

              3.自动生成头文件:

Spring的入门案例

Spring的入门案例

选择配置文件的约束

Spring的入门案例

修改根标签/去掉前缀

Spring的入门案例

             4.通过模板自动引入

Spring的入门案例

11.Spring创建对象的方式:

1.通过无参构造创建对象

通过反射调用

Spring的入门案例

说明:通过默认的无参构造创建对象是spring中默认的方式,这样的方式用的最多,所以,以后在编辑构造方法时,需要先添加无参构造。

 

2.静态工厂创建对象  static

为什么需要工厂模式:

有些对象不能够通过反射直接创建,抽象类和接口等

实质:就是类名.静态方法

Spring的入门案例

Spring的入门案例

3.实例工厂

说明:实例化工厂本身需要创建对象

实质:通过 对象.方法  获取对象

Spring的入门案例

Spring的入门案例

4.Spring工厂:

 

Spring的入门案例

Spring的入门案例

12.对象的单例和多例

说明:

Spring创建的对象默认的条件下是单例对象。

Spring的入门案例

可以通过scope改变对象的单例和多例

 

分析:

单例和多例的具体划分

ServletService Dao层级代码。

购物车:要求每人一份的需要设置为多例对象

javaBean无需关注单例和多例,java安全机制默认设置。

 

扩展:

多例对象如何存储???

 

Spring的入门案例

 

 

13.对象的懒加载机制:

什么时候使用对象,什么时候创建对象

 

说明:

Spring的入门案例

扩展:

对象是多例的,懒加载配置false

 

lazy-init="false"  scope="prototype"

如果对象的多例的,则统统懒加载,配置的懒加载属性不生效

 

14.DI 依赖注入

为属性赋值

1.set方法注入

前提条件,为属性赋值时必须添加set方法,否则不能正确注入。

Spring的入门案例

Spring的入门案例

 

Spring的入门案例

 

Spring的入门案例

 

 

15.SpringIOCDI的意义

1.无论之前是new对象和通过工厂模式实现。耦合性都是较高的。

 

SpringIOCDI一起联用时,可以为对象进行动态的赋值,如果修改实现类,只需要修改配置文件中的class属性即可,java代码不需要做任何的修改。最终实现松耦合。!!!

 

迄今为止,耦合性问题上没有人做的比Spring好。

相关文章: