zoukankan      html  css  js  c++  java
  • 重新学习之spring第一个程序,配置IOC容器

    第一步:导入相关jar包(此范例导入的是spring3.2.4版本,spring2.5版本只需要导入spring核心包即可)

    第二步:在项目的src下配置applicationContext.xml的配置文件

    applicationContext.xml文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4         xmlns:aop="http://www.springframework.org/schema/aop"
     5         xmlns:tx="http://www.springframework.org/schema/tx"
     6         xsi:schemaLocation="
     7             http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     8             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
     9             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    10     
    11     <!-- 
    12         lazy-init:true 懒加载,初始ioc化容器的时候,不建立对象
    13         lazy-init:false(默认) 不懒加载,初始化ioc容器的时候,就讲applicationContext.XML中所有配置的类的对象创建,并建立关系
    14         scope:prototype每次取对应id的类的对象,都新创建一个
    15         scope:singleton(默认)类似于单例模式,只要容器初始化一个类对象,以后所有的取用,都是取这一个
    16       -->
    17       
    18       <!-- 通过setter方法,依赖注入对象。控制反转 -->
    19     <bean id="userDao" class="com.bjsxt.shang.dao.UserDao" lazy-init="default" scope="singleton"></bean>
    20     <bean id="userAction" class="com.bjsxt.shang.action.UserAcion" lazy-init="default" scope="prototype">
    21         <property name="userDao" ref="userDao"></property>
    22     </bean>
    23     
    24     
    25     
    26 </beans>
    View Code

    第三步:编写测试类,获取applicationContext对象,即IOC容器对象

    test类源码

     1 package com.bjsxt.shangxiaofei;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 import com.bjsxt.shang.action.UserAcion;
     7 import com.bjsxt.shang.dao.UserDao;
     8 
     9 public class Test {
    10 public static void main(String[] args) {
    11         
    12         //官方推荐,建立xml文件,配置程序中对象,和建立对象间关系的是applicationContext.xml
    13         //平民版的xml是 beans.xml controller.xml dao.xml service.xml
    14         //获取解析,并依赖注入applicationContext.XML文件的ioc容器
    15         ApplicationContext acIoc=new ClassPathXmlApplicationContext("applicationContext.xml");
    16         //ApplicationContext ioc=new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
    17     
    18         
    19         //获取所有的ioc容器
    20         //BeanFactory是所有Spring Ioc容器的父接口
    21         //BeanFactory beanFactory=new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
    22         
    23         UserDao dao=(UserDao) acIoc.getBean("userDao");
    24         UserDao dao1=(UserDao) acIoc.getBean("userDao");
    25         //测试IOC容器中生成的对象是不是单例的。
    26         System.out.println(dao==dao1);
    27         
    28         UserAcion userAction=(UserAcion) acIoc.getBean("userAction");
    29         userAction.test();
    30     }
    31 
    32 
    33 
    34 }
    View Code

    在applicationContext.xml中是将项目中对象进行管理。不需要手动去new对象,只要在xml中将对象之间的依赖关系配置清楚即可。所以该测试类,最后打印结果是执行了UserDao中的方法。

  • 相关阅读:
    在上传文件时限制上传文件的大小,并捕捉超过文件大小限制的
    javascript 获取标签具体位置
    终端服务器超出了最大允许连接数
    常用SQL语句书写技巧
    Javascript实现截图功能(代码)
    JavaScript实现类,有多种方法。
    DBCC CHECKDB 数据库或表修复
    Lucene的例子
    控制同一exe程序打开多次
    IIS6 MMC检测到此管理单元发生一个错误,建议您关闭并重新启动mmc
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/3944241.html
Copyright © 2011-2022 走看看