spring基础

一  spring 的工作原理

    我们都知道 spring 有两大核心 : IOC   和 AOP

   1. 什么是 IOC ?

 ioc : 简称 控制反转 依赖注入 

     何为 IOC  在以往 我们用对象的时候,总是自己 通过 new 一个对象  ,然而这种做法 对内存的损耗十分大,有了ioc 后 我们就可以动态的注入 不需要采用new 的方式 去创建对象。 而是采用 java的反射机制去创建。将 创建对象 交给 spring 容器去做。

2. 什么是aop ?

AOP : 简称  面向切面工程 。

    何为aop  ?  呵呵 ,其实我也说不清,只知道它是采用代理的方式 去实现的 ,在项目中 通常像  日志  、事物管理 、缓存啊 基本上是采用的aop 实现的。 aop 的代理的方式 有静态代理和 动态代理


静态代理:  
 针对每个具体类分别编写代理类;  
 针对一个接口编写一个代理类;  
动态代理:  

针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类。它是不需要写代理类 ,而是通过 虚拟机来完成吧 。

3. 反射

什么是类的反射? 

   通俗来说 就是我们可以通过类说明 ---》可以得到类的父类、实现的接口、内部类、构造函数、方法、属性并可以根据构造器实例化一个对象,唤起一个方法,取属性值,改属性值。如何得到一个类说明:

                        Class cls=类.class;

                        Class cls=对象.getClass();

                        Class.forName("类路径");

       如何得到一个方法并唤起它?

                        Class cls=类.class;

                        Constructor cons=cls.getConstructor(new Class[]{String.class});

                        Object obj=cons.newInstance(new Object[]{"aaa"});

                        Method method=cls.getMethod("方法名",new Class[]{String.class,Integer.class});

                        method.invoke(obj,new Object[]{"aa",new Integer(1)}); 


二。 spring 的三种注入方式

1. 采用接口的方式 

2.  set get  (常用)

3. 通过构造函数


三 spring 的核心 类 和 核心配置文件

FactoryBean:工厂bean主要实现ioc/di

         ApplicationContext ac=new FileXmlApplicationContext("applicationContext.xml");

          Object obj=ac.getBean("id值");

核心配置文件: applicationContext.xml   (上下文)

四 。spring 的 模块

spring  应该是有 七大模块吧。具体我也不清楚。现在我们来说说这些模块是什么,具体是干什么的?

1.  spring aop 

   Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

2. spring dao

 DAO (Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。【dao层接口 以及实体类】

3. spring orm

  ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。【mybatis的实体映射文件mapper.xml 文件】

4.spring core:

Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。【提供bean】

5.Spring Context:

构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。


6.Spring Web:

Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。


7.Spring Web MVC:

Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值