Spring 框架复习笔记

Spring是一个业务层框架。

一.大致介绍(IoC):

(一)什么是IOC的功能

IoC:控制反转。将创建对象的权限交给Spring框架处理。

(二)步骤一:下载Spring开发包。

(三)步骤二:创建项目,将包导入到项目中。(在学习完maven以后,将Jar坐标写入到pom.xml文件中即可)。

(四)步骤三:创建对应的包结构:(xxxService<接口>. xxxServiceImpl<接口的实现类>)。

(五)步骤四: 将创建的包结构交给框架管理。

(六)步骤六:创建配置文件:applicationContext.xml

在配置文件中填写约束文件。然后配置第三步创建的实现类:

注意: 这个地方要填写实现类(impl )的全路径名。

(七)步骤五:开始进行整合测试。

测试类创建一个demo1

首先要创建工厂,加载核心配置文件:ApplicationContext  ac =

                          new ClassPathXmlApplicationContext(“applicationContext.xml”);

                                          ac.getBean(“xxx”)   --> xxx是配置文件中的<beanId>

        创建接口的对象<好处在与耦合度高>

一: 依赖注入: service中注入一个Dao的对象(依赖)

交给Spring容器自动注入。

(1)采用在Application配置文件中配置:

1) 演示依赖注入

<bean id=””   class=”” >  xxx属性自己配置 </bean>

    依赖(Dao层全路径名)

<bean id=””   class=””>

<property  name=””  ref=”” />                           (引用Dao层的Id值) 注入xxxServiceImpl中)

</bean>

① Set方法。(pojo中设置set方法)

<bean id=””   class=””>

        <property  name=””  value=”” />                           

</bean>

②构造方法的注入:

<bean id=””   class=””>

        <constructor-arg  name=””  value=”” />  

        <constructor-arg  name=””  value=”” />                           

</bean>

还可以采用ref引入的方式 引入一个已经配置好的类。

2)但不采用在配置文件中配置注入问题, 使用标签在Dao层次写入标签@Repository

    在xxxServiceImpl层次写入@Service(xxxService).然后创建Dao的对象。

3)单一属性值的设置:

2) <Bean id=”” class=””>

        <property name = “属性名” value = “属性值”>

</Bean>

3)  <Bean id=”” class=””>

        <property name = “属性名”>

            <list>

                <value>xxx</value>

            </list>

        </property>

</Bean>

(此处是list集合 同时也可以是set集合  将listset即可,)

4) 3) <Bean id=”” class=””>

            <property name = “属性名”>

                <map>

                        <entry key=”” value=”” / >

                        <entry key=”” value=”” / >

                        <entry key=”” value=”” / >

                <map>

            </property>

</Bean>

二: spel表达式的方式(简单了解一下就行)

在注入的value的值中 采用value=”#{xxx}” 

Xxx:如果 值是字符串的话 加单引号

值的话直接填写。

可以填写对象,对象的属性,对象得方法。

三:依赖注入标签的简单概述:

①首先开启注解扫描;

Context约束下面的标签:

<context : component-scan base-package=”xxx”>     (xxx-->document)

<context : component-scan>

②在XxxServiceImpl 中配置component(); 作用在当前类上。      

  中间如果不配置value值得就是类名但是首字母小写。

              但是比较原始。 了解就好。

③根据component 衍生出来得三个注解。 不同得层次有不同得注解。

Dao----->Response 持久层 (操作数据库)

Service----->Service(value = “”)     业务层 (方法及具体的实现)

Controller----->Controller(value = “”)    WEB

④ 数据类型的注入:

基本数据类型的注入:在属性名上面添加@Value (value = “”)

引用类型的注入: @Autowired   按照类型自动装配

按名称注入:  @Qualifier(value = “”)  根据Servicevalue进行装配

注入的缺点在于要两个一起用:

 第一行写@Autowired 第二行写@Qualifier

java提供的一个注解,Spring框架支持。

Resourcename = “” 根据名称装配  

二:大致介绍(AOP

1) 面向切面的编程。

2) 底层原理 JDK动态代理。(简单说就是接口实现类)

 Proxy.NewProxyInstancexxx.getClass().getClassLoader()   -->类的加载器

xxx.getClass().Interfaces()         --->接口

New InvocationHandler       -->匿名内部类

在测试类中拿到代理对象 用代理对象调用方法。

代理对象执行的时候。Invoke会执行一次。

3)AOP的术语:

Joinpoint 连接点   简单来说指的就是方法。

Pointcut  切入点   想对那个方法进行更改,该方法就是切入点。

Advice   通知     拦截以后的通知。具体想做什么功能。

Target   目标对象  代理的目标对象。(简单指想要被增强的实现类)

Proxy    代理      JDK接口代理  和cglib的动态代理。

Aspect   切面      切入点(自己配置)和通知合二为一的东西。

详解切面的配置xml文档:

①先配置aop(别名)约束.

②再配置切面类<bean id = “” class = “” />

③(1)配置通知。(先打< 观察一下有不同种类型)

<aop : config>

<aop:aspect ref = “xxx”>   第二步所配置的id

<aop:xxx         mothed = “xxx”        pointcut=”xxx”>  

不同类型      不同的方法        切入点

切入点---> (execution(piblic *(void..) xxx))  xxx->方法全路径名

</aop:asoect>

</aop : config>

③(2)通知可以配置的切面类中进行注解的配置;但需要开启自动代理

<aop:aspectJ-autoproxy / >   开启自动代理

3) 操作事物:

PlatformTransactionManager(接口)  平台事物管理器

两个接口的实现类:

DateSrouceTransactionManager

HibernateTransactionManager      

两个重要方法commit rollback .

TransactionDifinition  设置事物的隔离级别.

TransactionStatus  显示事物的状态.

猜你喜欢

转载自blog.csdn.net/jdzw_xcy/article/details/80383640