spring. net (1) 개념 - 반전 제어 (일명 주입 의존)

11272 단어 spring
Spring. net 은 응용 프로그램 프레임 워 크 로 서 기업 급. net 응용 프로그램 을 구축 하 는 데 많은 유연 하고 풍부 한 기능 을 제공 합 니 다 (예 를 들 어 주입, op, 데이터 액세스 추상, asp. net 확장).
제어 반전:
Inversion of Control: IoC 라 고 약칭 한다. 대상 지향 프로 그래 밍 중의 디자인 원칙 으로 컴퓨터 코드 간 의 결합 도 을 낮 출 수 있다.그 중에서 가장 흔히 볼 수 있 는 방식 은 의존 주입 (Dependency Injection, 약칭 DI) 이 고 '의존 검색' (Dependency Lookup) 이라는 방법 도 있다.반전 을 제어 함으로써 대상 이 생 성 될 때 시스템 내 모든 대상 의 외부 실 체 를 제어 하여 의존 하 는 대상 의 인용 을 전달 합 니 다.의존 이 대상 에 주입 된다 고 할 수도 있다.
 
개인 이해: 대상 중의 대상 을 대상 으로 하 는 부자 상속, 인터페이스 또는 추상 적 인 실현 등에 따라 관 계 를 가 진 대상 의 실례 화 를 통제한다.
실례:
애완동물 한 마리 가 있 습 니 다:
public interface Pet
    {
        string name { get; set; }
        void bark();
    }

 
강아지:
public class Dog : Pet
    {
        public string name { get; set; }
        public void bark()
        {
            Console.WriteLine("         ...");
        }
      }

 
사람:
  
 public class Person
    {
        public string name { get; set; }
        public Pet pet { get; set; }
    }

 
간단 한 spring 프레임 워 크:
프로젝트 참조: spring. core - 전체 프레임 워 크 의 기초 로 주입 에 의존 하 는 기능 을 실현 합 니 다.
Spring. AOP - 측면 프로 그래 밍 (op) 지원 제공
Spring. Data - a 는 추상 적 인 데이터 액세스 층 을 정의 하여 각종 데이터 액세스 기술 (ADO. NET 에서 각종 orm 까지) 을 뛰 어 넘 어 데이터 접근 을 할 수 있 습 니 다.
프로젝트 프로필: 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 name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>
  <spring>
    <context>
     
      <resource uri="file://objects.xml"></resource>
    </context>
    <objects  xmlns="http://www.springframework.net">
     
    </objects>
  </spring>
</configuration>

 
  objects.xml  속성 은 처음부터 끝까지 복사 합 니 다. 그렇지 않 으 면 위 에 설 정 된 < resource uri = "file://objects.xml"> < / resource > 를 찾 을 수 없습니다.  
<?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="SpringDemo.Person,SpringDemo" singleton="true" >
    <property name="pet" ref="dog" ></property>
    <property name="name" value="Yahue"></property>
  </object>
  <object id="dog" type="SpringDemo.Dog,SpringDemo"  singleton="true">
    <property name="name" value="  "></property>
  </object>
</objects>

 
콘 솔 프로그램 중:
static void fistIoC()
{

Person p = ctx.GetObject("person") as Person; Console.WriteLine(p.pet.name);
Console.WriteLine("-------------------------");
}

 
호출:
static IApplicationContext ctx = ContextRegistry.GetContext();
        static void Main(string[] args)
        {
            fistIoC();
            Console.ReadLine();
        } 

 
콘 솔 출력:
활용 단어 참조
 -------------------------
ok ioc 。
:spring.net , , 。
  

좋은 웹페이지 즐겨찾기