Spring.Net学习笔记(4)-属性及构造器注入

一、开发环境

操作系统:Win10

编译器:VS2013

.Net版本:.net framework4.5

二、涉及程序集

Spring.Core.dll:1.3.1

Common.Logging.dll

三、开发过程

1.项目结构

2.编写Product.cs

namespace SpringNetDi
{
    public class Product
    {
        public string Name { get; set; }

        public decimal UnitPrice { get; set; }
    }
}

3.编写ProductFactory.cs

namespace SpringNetDi
{
    public class ProductFactory
    {
        public Product FactoryProduct { get; set; }
    }
}

4.编写Article.cs

namespace SpringNetDi
{
    public class Article
    {
        private string name;
        private string writer;

        public Article(string name, string writer)
        {
            this.name = name;
            this.writer = writer;
        }

        public void GetMsg()
        {
            Console.WriteLine("你好,我是" + writer);
        }
    }
}

5.配置app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section>
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
    </sectionGroup>
  </configSections>

  <spring>
    <context>
      <resource uri="config://spring/objects"></resource>
    </context>
    <objects>
      <!--01属性注入-值类型-->
      <object name =" product" type="SpringNetDi.Product,SpringNetDi">
        <property name="Name" value="记号笔"></property>
        <property name="UnitPrice" value="5"></property>
      </object>
      <!--02属性注入-引用类型-->
      <object name="factory" type="SpringNetDi.ProductFactory,SpringNetDi">
        <property name="FactoryProduct" ref="product"></property>
      </object>
      <!--03构造函数注入-->
      <object name="article" type="SpringNetDi.Article,SpringNetDi">
        <constructor-arg name="name" value="依赖注入"></constructor-arg>
        <constructor-arg name="writer" value="Kimisme"></constructor-arg>
      </object>
    </objects>
  </spring>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>

6.控制台代码

namespace SpringNetDi
{
    class Program
    {
        static void Main(string[] args)
        {
            IApplicationContext context = ContextRegistry.GetContext();
            Product product = context.GetObject("product") as Product;
            Console.WriteLine(product.Name);

            ProductFactory factory = context.GetObject("factory") as ProductFactory;
            Console.WriteLine(factory.FactoryProduct.Name);

            Article article = context.GetObject("article") as Article;
            article.GetMsg();
            Console.WriteLine("ok");
        }
    }
}
时间: 2024-10-05 01:04:24

Spring.Net学习笔记(4)-属性及构造器注入的相关文章

Spring.Net学习笔记六(依赖对象的注入)

一.属性注入 上篇我们简单提到依赖注入的用途.回顾一下所讲内容,发现在object节点下使用了<property name="Tool" ref="computer"/>.而property 标签正是用来属性注入的.而ref是用来标识是关联到哪个object.而name属性是指属性名.如下: <object id="modernPerson" type="SpringNetIoC.ModernPerson, Sprin

Java框架spring Boot学习笔记(九):注入对象类型属性

使用set方法注入对象属性 编写UserDao.java文件 1 package com.example.spring; 2 3 public class UserDao { 4 public void print(){ 5 System.out.println("Dao print."); 6 } 7 } 编写UserService.java文件 1 package com.example.spring; 2 3 public class UserService { 4 //1.定义

Spring.Net学习笔记七(集合类型的注入)

Spring.NET还支持集合类型的注入.而且使用起来也比较方便. 一.ILIst类型 使用<list>元素作为ILIst的标签,value为集合中元素的值.也可以注入对象,甚至关联其它对象,使用 <ref/>元素表示关联的对象,object 属性为所关联对象的id或name.集合可以为空,用<null/>元素来标记. 在<list>元素中设置 element-type 属性表示泛型T的类型,例如 element-type="int"  

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

Spring视频学习笔记(二)

Spring视频学习笔记(二) XML配置里的Bean自动装配(三个来测试实现) /** * Person类 * */ public class Person { private String name; private Address address; private Car car; public String getName() { return name; } public void setName(String name) { this.name = name; } public Ad

[Spring MVC]学习笔记--表单标签的使用

github例子地址: https://github.com/lemonbar/spring-mvc-jsp 效果图 关于spring mvc的标签的讲解, 有一篇blog已经讲的很细了. http://haohaoxuexi.iteye.com/blog/1807330 官方文档地址: http://docs.spring.io/spring/docs/4.0.6.RELEASE/spring-framework-reference/htmlsingle/#view-jsp 而且我在上面的例子

Spring Batch学习笔记二

此系列博客皆为学习Spring Batch时的一些笔记: Spring Batch的架构 一个Batch Job是指一系列有序的Step的集合,它们作为预定义流程的一部分而被执行: Step代表一个自定义的工作单元,它是Job的主要构件块:每一个Step由三部分组成:ItemReader.ItemProcessor.ItemWriter:这三个部分将执行在每一条被处理的记录上,ItemReader读取每一条记录,然后传递给ItemProcessor处理,最后交给ItemWriter做持久化:It

[Spring MVC]学习笔记--DispatcherServlet

在上一篇我们介绍了Servlet,这一篇主要来看一下MVC中用到的DispatcherServlet(继承自HttpServlet). 1. DispatcherServlet在web.xml中被声明. <web-app> <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet&l

HTML学习笔记——disabled属性

1.适用范围:HTML中的input元素.option元素 2.作用:禁用元素.被禁用的 input 元素既不可用,也不可点击. 3.示例: ①如下代码的button元素都处于禁用状态 <input type="button" disabled="false" value="测试按钮"> <input type="button" disabled="123" value="测试按