Spring学习笔记——Spring

xiaoxiao2021-02-28  18

Spring概念

1、  spring是开源框架

2、  spring核心部分

a)        aop:面向切面的编程,扩展一个功能,不修改代码

b)        ioc:控制反转,把对象的创建不是通过new方式实现,而是交给spring配置创建类的对象

3、  spring是一站式框架

a)        spring在javaee三层结构中,每一层都提供不同的解决技术

                        i.             web层:springMVC

                      ii.             service层:spring的ioc

                     iii.             dao层:spring的jdbcTemplate

4、  spring版本

spring4.x

spring的ioc操作

1、  把对象的创建交给spring处理

2、  Ioc的操作两部分

a)        Ioc的配置文件方式

b)        Ioc的注解方式

Ioc底层原理

1、  ioc底层原理使用技术

a)        xml配置文件

b)        dom4j解决xml

c)        工厂设计模式

d)        反射

2、  开发中的一种思想:

高内聚,低耦合。

3、   Ioc的原理及使用

a)        创建xml文件,配置要创建的对象类

<bean id=”userService”class=”com.william.UserService”>

b)        创建工厂类,使用dom4j解析配置文件+反射

Public class UserFactory{

        //返回UserService对象的方法

Public static UserServlice getService(){

        //1使用dom4j解析xml文件

        //根据id值,得到对应的class属性值

String classValue=”classvalue”;

        //利用反射创建类的对象

Class clazz=Class.forName(classValue);

        //创建类的对象

UserService service=clazz.newInstance();

Return service;

}

}

c)        在Servlet中得到UserService的对象

Public class UserServlet{

        UserFactory.geyService();

}

Ioc入门案例

1、  导入jar包

a)        Jar包特点:

                        i.             Jar包

                      ii.             文档

                     iii.             源代码

b)        基础开发只需要4个部分:(Beans、Core、Context、SpEl)

                        i.             spring-beans-3.2.4.RELEASE.jar

                      ii.             spring-core-3.2.4.RELEASE.jar

                     iii.             spring-expression-3.2.4.RELEASE.jar

                     iv.             spring-context-3.2.4.RELEASE.jar

c)        支持日志输出的jar包

                        i.             commons-logging-1.1.1.jar

                      ii.             dom4j-1.6.1.jar

2、  创建类,创建一个方法

3、  创建Spring一个配置文件,配置创建类

a)        Spring 核心的配置文件名称和位置不是固定的

建议放到src下,官方建议为applicationnContext.xml

b)        引入schema约束

c)        配置对象

4、  写代码测试对象创建

测试代码(仅供测试使用)

解决配置文件没有提示的问题

spring引入schema约束,把约束文件引入到eclipse中;

a)        复制约束路径:

b)        快捷约束方式:

在有网的地方将所有用到的约束写入配置文件

Spring的bean管理(xml方式)

bean实例化的方式

1、  在spring里面通过配置文件创建对象

2、  Bean实例化三种方式实现

a)        使用类的无参数构造器(常用)

实体类里若没有实体类,会出现以下异常:

b)        使用静态工厂创建

创建静态方法,返回类的对象

c)        使用实例化工厂创建

创建一个不是静态的方法,返回类对象

Bean标签常用属性

1、  id属性:其名称,id属性值名称任意命名

-id属性值,不能包含特殊符号,

-根据id值得到配置对象

2、  class属性:创建对象所在类的全路径

 

3、  name属性:功能和id功能一样的,但是name属性值可以包含特殊符合

 

4、  scope属性:bean的作用范围

a)        singleton:默认值,单例的;

b)        prototype:多例的;

c)        request:web项目中,Spring创建一个Bean对象,将对象存入到request域中;

d)        session:web项目中,Spring创建一个Bean对象,将对象存入到session域中;

e)        globalSessionweb项目中,应用在Prolet环境,如果没有Prolet环境,那么globalSession相当于session

属性注入

1、  创建对象的时候,向类的属性里面设置值

2、  属性注入方式的介绍(三种方式)

a)        使用set方法注入

Public class User{

        PrivateString name;

Public void setname(String name){

        This.name=name;

}

}

User user=new User();

User.setName(“abcd”);

b)        用有参构造器注入

Public class User{

        PrivateString name;

        PublicUser(String name){

        This.name=name;

}

}

User user=new User(“Lucy”);

c)        使用接口注入

Public interface Dao{

        Publicvoid delete(String name);

}

Public class DaoImpl implements Dao{

        Publicvoid delete (String name){

        This.name=name;

}

}

3、  在Spring中仅支持前两种注入

有参构造器注入

Set方法注入

注入对象类型属性(重点)

1、  加入创建一个service类和dao类

a)        在service里面得到dao对象

2、  具体实现过程

a)        在service里面把dao作为类型属性

b)        生成dao类型属性的set方法

c)        配置文件中完成注入关系

IOC和DI的区别

1、  IOC:控制反转,把对象创建交给Spring进行配置

2、  DI:依赖注入,向类里面的属性设置值

3、  两者之间的关系:DI(依赖注入)不能单独存在,需要在IOC(控制反转)基础上完成操作

Spring整合web项目

1、  加载核心配置文件

a)        New 对象,功能可以实现,效率很低

2、  实现思想:把加载配置文件和创建对象的过程,在服务器启动的时候完成

3、  实现原理

a)        ServletContext对象

b)        监听器

c)        具体使用:

                        i.             在服务器启动时,为每个项目创建一个ServletContext对象

                      ii.             在ServletContext对象创建时,使用监听器可以具体到ServletContext对象在什么时候创建

                     iii.             使用监听器监听到ServletContext对象创建的时候

                     iv.             加载srping配置文件,把文件配置对象创建

                      v.             把创建出来的对象放到ServletContext域对象里面setAttribute方法

获取对象的时候,到ServletContext域得到getAttribute方法
转载请注明原文地址: https://www.6miu.com/read-1400325.html

最新回复(0)