Spring-----配置及对象初始化(1)

一,配置文件进行Spring初始化

1,配置文件编写

<?xml version="1.0" encoding="utf-8" ?>
<configuration>   /*************    这里会报异常“Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常。把配置注释掉就行了
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>  ***************/
  <configSections>     //初始化Spring
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>
   //Spring配置节点
  <spring>

    <context>
      <resource uri="config://spring/objects" />
    </context>

    <objects xmlns="http://www.springframework.net">
      <description>人类</description>
      <object id="Model" type="Model.Person, Model" />
    </objects>

  </spring>

</configuration>

2,初始化代码

异常:No object named ‘Person‘ is defined : Cannot find definition for object [Person]

 static void Main(string[] args)
        {
            IApplicationContext ctx = ContextRegistry.GetContext();

            IPerson dao = ctx.GetObject("Person") as IPerson;

        }

  

这里报异常是因为在配置文件中没有找到  <object id="Person" type="Model.Person, Model" />  的节点

需在项目中增加Spring.Core.dll的引用

二,使用Xml文件Spring初始化

(1)具体文件的初始化

编写Objects.xml

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

<objects xmlns="http://www.springframework.net"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.net
        http://www.springframework.net/xsd/spring-objects.xsd">

  <object id="Person" type="Model.Person, Model">

  </object>

</objects>

后台初始化

        private static void ReadFromXml()
        {
            IResource input = new FileSystemResource("Objects.xml");  //路径----这里使用的是相对路径,也可以使用绝对路径,如果路径错了会报异常

            IObjectFactory factory = new XmlObjectFactory(input);

            IPerson person = factory.GetObject("Person") as IPerson;

        person.Speak("hello");
        }

(2)程序集下寻找配置文件

  private static void ReadFromMuiltDoc()
        {
            //需满足URI语法。
            //file://文件名
            //assembly://程序集名/命名空名/文件名
            string[] xmlFiles = new string[]
            {
                "file://Objects.xml"
            };

            IApplicationContext context = new XmlApplicationContext(xmlFiles);

            IObjectFactory factory = (IObjectFactory)context;

            IPerson person = factory.GetObject("Person") as IPerson;

            person.Speak("多文件初始化");
        }

这种方式相对灵活

(3)在配置文件App.config或Web.config添加自定义配置节点

在配置文件中要引入<objects xmlns="http://www.springframework.net"/>命名空间,否则程序将会无法实例化Spring.NET容器。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>

  <spring>

    <context>
      <resource uri="assembly://FirstSpringNetApp/FirstSpringNetApp/Objects.xml"/>
      <resource uri="config://spring/objects" />
    </context>
    <objects xmlns="http://www.springframework.net"/> <!--必要-->
  </spring>

Spring-----配置及对象初始化(1),布布扣,bubuko.com

时间: 2024-10-15 13:46:13

Spring-----配置及对象初始化(1)的相关文章

Spring的IOC、Spring对象初始化bean时机、Spring容器生命周期

IOC指的是控制反转,把对象的创建.初始化.销毁等工作都交给Spring容器.由spring容器来控制对象的生命周期. Spring对象初始化bean时机: 在默认情况下,只要在Spring容器中配置了一个bean,容器在启动时就会实例化该bean,单例模式. 如果在Spring配制文件时设置懒加载模式(lazy-init="true"),在getBean时才会实例化对象. 如果scope="prototype"时,无论lazy-init的值是什么都只会在使用时才会

SSH框架系列:Spring配置多个数据源

问题:有开源框架mysql的 ,还有旧系统 sqlserver2000的,解决这些问题总有些成长. 解决sqlserver安装环境:http://qdh68.blog.163.com/blog/static/13756126201261742437357/ 别说sqlserver2000不怎么样,最起码那友好的管理叫你明白数据库. 2.  先说配置jdbc:如果sqlserver 2000以上还好 找到jar包 ,按目录加载到maven仓库,安装一下 http://outofmemory.cn/

Spring IoC容器的初始化过程

Spring IoC容器的初始化包括 BeanDefinition的Resource定位.载入和注册 这三个基本的过程.IoC容器的初始化过程不包含Bean依赖注入的实现.Bean依赖的注入一般会发生在第一次通过getBean向容器索取Bean的时候. 先看以下代码: ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml"); Car car = (Car) context.getBean(&q

spring配置的一些特殊配置说明

第二个 abstract =''true' 如果你有一个(父)bean定义你希望仅仅作为模版使用,而这个定义说明了一个类,你必须把abstract参数设置为true,否则应用程序上下文将试图预先初始化它. 第三个 default-lazy-init="true" Spring配置默认default-lazy-init为false,当属性default-lazy-init设置为true时,Spring启动时不会再去加载整个对象实例图,不过这样做可以大大减小Spring的启动时间.所谓的加

spring配置与使用

一,关于spring概念的理解 1,spring可以看做是项目的管家,负责管理项目中的所有对象(包括web层,service层和dao层). 2,spring一站式框架:spring跨年性质是属于容器性质的,它之所以能够处理请求,是因为容器中装了处理请求的对象,容器中装了什么对象它就具备什么功能,所以称之为一站式. 3,spring的核心是IOC反转控制和AOP面向切面 4,spring不排斥任何开源框架,并且能够帮助其他框架管理对象 spring中IOC和DI的概念 ioc 反转控制 就是将我

Spring中bean对象的生命周期

Spring提供了一些接口来提供一些方法,体现了bean对象在Spring容器中的生命周期 具体的过程可以体现为: 读取权限类名->构建一个类对象->用这个类对象通过无参构造器newInstance()构建对象 ↓ 调用set方法注入依赖 ↓ 如果这个Bean已经实现了BeanNameAware接口 调用它实现的setBeanName(String name)方法 此处传递的就是Spring配置文件中Bean的name值 ↓ 如果这个Bean已经实现了BeanFactoryAware接口 容器

Spring配置DataSource数据源

在Spring框架中有如下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDataSource获得DataSource. 一.从JNDI获得DataSource SpringJNDI数据源配置信息: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean&qu

Spring配置数据源的常用方式

Spring配置数据源的常用方式 在应用程序中配置数据源 (1).在classpath中创建连接参数的配置文件,如db-config.properties,内容如下: driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/zzp username=root password=admin (2).在Spring的配置文件中引入参数配置文件,代码如下: <!-- 配置spring资源文件 --> <bean id=

atitit.spring hibernate的事务机制 spring不能保存对象的解决

atitit.spring hibernate的事务机制 spring不能保存对象的解决 sessionFactory.openSession() 不能. . log黑头马sql语言.. sessionFactory.getCurrentSession().update(user); 中间走ok兰..log黑头也有累.. 在Spring中使用Hibernate.假设我们配置了TransactionManager.那么我们就不应该调用SessionFactory的openSession()来获得S