码迷,mamicode.com
首页 > 编程语言 > 详细

Spring框架学习(一)

时间:2016-08-24 17:00:45      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

Spring简介:
    
    在J2EE程序开发时,如果类与类之间的耦合性非常高的话那么这个程序肯定是不合格的,Spring框架就是为了来解决类与类之间,层与层之间(如dao和service)之间的解耦,让程序与程序之间不互相依赖。

Spring开发步骤:
    (1) Copy Jar
  (2) spring核心的配置文件为applicationContext.xml 
技术分享
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans 
 3 xmlns="http://www.springframework.org/schema/beans"
 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5 xmlns:context="http://www.springframework.org/schema/context"
 6 xsi:schemaLocation=
 7 "http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans.xsd
 9         http://www.springframework.org/schema/context
10         http://www.springframework.org/schema/context/spring-context.xsd">
11 
12     <bean id="discount" class="com.wzh.service.impl.Discout"></bean>
13     <bean id="discount" class="com.wzh.service.impl.Discout11"></bean>
14     <bean id="discount" class="com.wzh.service.impl.Discout12"></bean>
15 
16 </beans>
技术分享
(3)初始化IOC容器,从容器中获取对象
技术分享
    public void pay(List<Goods> goods){
        //初始化IOC容器的代码
        ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        IDiscout discout = (IDiscout)ac.getBean("discount");
        Float total = discout.discout(goods);
        System.out.println("向支付宝发发起" + total + "元支付请求");
    }
技术分享
Spring的核心特性:

1.IOC(Inverse of control 反转控制)
    Spring IOC是指对象的创建与管理的工作交由Spring IOC容器来管理,Spring IOC容器本质就是一个Map对象,
我们在程序开发的时候不再直接使用newXXX()对象进行创建,而是被动的从Spring IOC容器中进行获取即可,Spring IOC为我们提供了对象之间解耦的方案。降低了程序开发的复杂度。
 
2.DI(Dependency Injection)依赖注入
    DI是IOC具体技术层面上的实现,在java中实现DI的技术是:反射(Reflecion)
    DI和IOC其实是指的同一件事情,只是从宏观的角度和微观的角度不同而已。

    IOC:是一种概念,
    DI:是IOC概念的一种实现
3. Spring IOC注入的4种方式
    (1) get/set 注入(强烈推荐)  ->   <property name="cashierService" ref="service"></property>
    (2) 构造函数注入(不推荐) ->      <constructor-arg name="cs" ref="service"></constructor-arg>
    (3) 静态工厂注入(不推荐)
    (4) 接口注入 Spring官方不推荐方式,接口注入和Spring概念相冲,它是一种强耦合的注入方式
 
4. 在Spring中IOC容器默认是单例的,所有引用共享一个对象.
    (1) 单例 scope = "singleton" 在IOC容器初始化的时候对象就被创建,全局有且只有唯一的一个,大家共享,存储消息,读取配置信息的类我们可以利用单例
    (2) 多例 scope = "prototype" (原型) ,在IOC容器初始化的时候并不会创建,取而代之的是在getBean()的时候进行创建,并且每调用一次创建不同的对象
        注意:在struts2的环境下Action是多例的所以在spring中配置必须是prototype

5. 设置延迟加载lazy-init="true"
    是指需要用的(第一次调用getBean())时候才会创建对象,懒加载在多例模式下无效,且多次调用的时候都指向相同的对象.

 

 

Spring框架学习(一)

标签:

原文地址:http://www.cnblogs.com/buibui/p/5803468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!