spring基础说明文档

spring

传统项目action--->service--->dao,项目各个组件的链接的紧密度太高(耦合度太高)

spring框架可以对项目的各个组件进行解耦

1.spring核心模块

         (1)IOC:控制反转 概念 本来是程序员new对象,现在是程序员在spring配置文件中

             注册bean,然后变成spring容器new对象。这种控制权的转换叫控制反转

    (2)AOP:面向切面编程 监控程序的程序

2.spring是一站式框架

         (1)springMVC  和前台交互部分

         (2)Dao部分jdbcTemplate

     (3)  spring复制整个工程的管理

3.spring配置模式

         (1)文档式配置

         (2)注解式配置

4.相关框架的版本问题

          (1)struts2.x

     (2)hibernate3.x  4.x  5.x

     (3)spring3.x  spring4.x

5.spring入门实例

         1.将基本spring jar拷贝到项目目录下

         2.到spring官方资料中拷贝约束(schema)

(2.1)拷贝路径

spring-framework-3.0.0.RELEASE-with-docs\spring-framework-3.0.0.RELEASE\docs\spring-framework-reference\html\xsd-config.htm

(2.2)将约束拷贝到applicationContext.xml

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

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

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

       xmlns:util="http://www.springframework.org/schema/util"

       xsi:schemaLocation="

       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

</beans>

   3.编写UserDao容器注册的实例

                       (3.1)编写UserDao 中间query()方法

                        package dao;

        package dao;

        public class UserDao {

            public void query(){

               System.out.println("UserDao.query()...");

            }

        }

     4.UserDao注册到applicationContext.xml

       <bean id="userDao" class="dao.UserDao">

        </bean>

5.编写测试类

   public class Test {

   /**

    * @param args

    */

   public static void main(String[] args) {

     

      //将总配置文件加载到内存中(使用dom4j解析)

      ApplicationContext context = new    ClassPathXmlApplicationContext("applicationContext.xml");

     

      //根据在spring.xml文件中注册的UserDao类的ID获取并创建对象

      UserDao userDao=(UserDao)context.getBean("userDao");

     

      userDao.query();

   }

}

   

spring  Bean的属性:

    id:不能使用特殊字符,根据ID从spring容器可以获取到对象。

    name:不能使用特殊字符,根据Name从spring容器可以获取到对象。

    class:自定类的具体路径使用"."链接(比如:dao.UerDao)

    scope:

           singleton:单例模式*

             protoType:非单例*

             request:在web项目中,将对象保存到request中。

             session: 在web项目中,将对象保存到session中。

             global session:在prozel环境中使用,如果不是这个环境,相当于session

IOC原理

         1.内部原理

        

         2.spring内部执行过程

        

11.IOC和DI的区别

    1.IOC:控制反转

    2.DI依赖注入

    关系:DI需要和IOC配合才能完成,Bean的注入对象的创建。

12.spring整合web项目原理

    1.spring在web.xml中嵌入监听器,监听服务器创建ServletContext对象

<!-- 配置spring的监听器    -->

   <listener>

   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

   </listener>

    

     2.当请求到达服务器,ServletContext被创建,会自动创建spring容器

      自动调用一下代码:

        ApplicationContext context=

                                  new ClassPathXmlApplicationContext("applicationContext.xml");

     3.spring帮我们所创建的文件,保存到ServletContext对象中。

   

13.spring的Bean管理(注解方式)

1.注解介绍:

    1.代码里面特殊标记,使用注解可以完成功能。

    2.注解写法@注解名称(属性名称=属性值)

    3.注解使用在类的上面,方法上面和属性上面

2.操作流程

    1.导入jar包

      

    2.创建类和方法

        ........

    3.创建spring配置文件,引入约束

        xmlns:context="http://www.springframework.org/schema/context"

        http://www.springframework.org/schema/context

           http://www.springframework.org/schema/context/spring-context-3.0.xsd

    4.开启注解

        <!-- 开启扫描                 并指定需要扫面的包 -->

       <context:component-scan base-package="cn.*"/>

    5.创建测试类测试

3.创建对象的四种注解

    @Controller : web层 servlet

    @Service     :业务层 

    @Repository  :持久层  dao

    @Component  :其他组件

  

     目前这四个注解功能一样,都可以创建对象。使用层标注为了让类的用途清晰化

4.使用注解注入属性

    @Autowired

    @Resource(name="userDao")

    注意:@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,

           而@Resource默认按 byName自动注入罢了。

5.xml和 注解混合使用

14.AOP

    (1)aop概述

       1.AOP面向切面编程,扩展功能不修改源代码。

        2.AOP采用横向切割,取代传统的纵向继承体系

        重复性代码(性能监视、事务管理、安全检查、缓存)

    (2)底层原理

       1.横向切割

          

       2.纵向切割

          

      

    (3)操作相关术语

       Joinpoint(连接点:类里面可以被增强的方法,这些方法叫连接点)

       Pointcut(切入点:JoinPoint拦截点)

       Advice(通知/增强:拦截到之后所做的事情;分为、前置、后置、异常、最终、

                           环绕)

       Aspect(切面:切入点和通知的结合)

      

    (4) aop操作(基于aspectj的xml方式)

    (5)log4j介绍

    (6)spring整合web项目演示

    

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值