spring&IOC&DL&基本配置

IOC控制反转&DL依赖注入

控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。
    我们可以把IOC容器的工作模式看做是工厂模式的升华,可以把IOC容器看作是一个工厂,这个工厂里要生产的对象都在配置文件中给出定义,然后利用编程语言提供的反射机制,根据配置文件中给出的类名生成相应的对象。从实现来看,IOC是把以前在工厂方法里写死的对象生成代码,改变为由配置文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。
    DL依赖注入: 比如Service层需要Dao对象,调用Dao层方法完成业务逻辑,但是如果直接使用new Dao层对象会导致代码耦合度过高,我们可以通过spring框架配置好注入对象,在类中提供成员属性和set方法让框架完成DL依赖注入.

下载地址

官网:http://spring.io/

下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring

解压:(Spring目录结构:)

 docs         :API和开发规范.
 libs           :jar包和源码.
 schema    :约束.
![框架][1]
![基本jar包][2]

基本配置文件&约束

log4j.properties
applicationContext.xml
引入约束:
spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
如果一个类需要交给spring框架IOC管理需要在配置文件中配置<bean>标签
<bean id="userDao" class="cn.itcast.spring.demo1.UserDaoImpl"></bean>
调用工厂类测试
@Test
// Spring的方式:
public void demo2(){
    // 创建Spring的工厂类:
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    // 通过工厂解析XML获取Bean的实例.
    UserDao userDao = (UserDao) applicationContext.getBean("userDao");
    userDao.sayHello();
}

spring配置

id :Bean起个名字.    在约束中采用ID的约束:唯一.    必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号    id:不能出现特殊字符.
<bean id=”bookAction”>
`name`:Bean起个名字.    没有采用ID的约束.     name:出现特殊字符.如果<bean>没有id的话 , name可以当做id使用.
 整合struts1的时候:
<bean name=”/loginAction” >

`scope`属性:Bean的作用范围.
 - singleton        :默认值,单例的.
 - prototype        :多例的.
 - request        :WEB项目中,Spring创建一个Bean的对象,将对象存入到request域中.
 - session        :WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中.
globalSession    :WEB项目中,应用在Porlet环境.如果没有Porlet环境那么globalSession相当于session.

Bean的生命周期的配置:
通过配置<bean>标签上的`init-method`作为Bean的初始化的时候执行的方法,配置destroy-method作为Bean的销毁的时候执行的方法。
销毁方法想要执行,需要是单例创建的Bean而且在工厂关闭的时候,Bean才会被销毁.

DL配置注入


Spring的Bean的属性注入
构造方法的方式注入属性,提供对应构造方法和属性
    <!-- 第一种:构造方法的方式 -->
    <bean id="car" class="cn.itcast.spring.demo4.Car">
        <constructor-arg name="name" value="保时捷"/>
        <constructor-arg name="price" value="1000000"/>
    </bean>
set方法的方式注入属性,提供set方法和属性
    <!-- 第二种:set方法的方式 -->
    <bean id="car2" class="cn.itcast.spring.demo4.Car2">
        <property name="name" value="奇瑞QQ"/>
        <property name="price" value="40000"/>
    </bean>
Spring的属性注入:对象类型的注入:
    <!-- 注入对象类型的属性 -->
    <bean id="person" class="cn.itcast.spring.demo4.Person">
        <property name="name" value="会希"/>
        <!-- ref属性:引用另一个bean的id或name -->
        <property name="car2" ref="car2"/>
    </bean>
Spring的属性注入:注入集合
    <!-- Spring的复杂类型的注入===================== -->
    <bean id="collectionBean" class="cn.itcast.spring.demo5.CollectionBean">
        <!-- 数组类型的属性 -->
        <property name="arrs">
            <list>
                <value>会希</value>
                <value>冠希</value>
                <value>天一</value>
            </list>
        </property>
        
        <!-- 注入List集合的数据 -->
        <property name="list">
            <list>
                <value>芙蓉</value>
                <value>如花</value>
                <value>凤姐</value>
            </list>
        </property>
        
        <!-- 注入Map集合 -->
        <property name="map">
            <map>
                <entry key="aaa" value="111"/>
                <entry key="bbb" value="222"/>
                <entry key="ccc" value="333"/>
            </map>
        </property>
        
        <!-- Properties的注入 -->
        <property name="properties">
            <props>
                <prop key="username">root</prop>
                <prop key="password">123</prop>
            </props>
        </property>
    </bean>

Spring的分配置文件的开发

一种:创建工厂的时候加载多个配置文件:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");
二种:在一个配置文件中包含另一个配置文件:
<import resource="applicationContext2.xml"></import>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值