Spring 학습 노트 의존 주석 (2)

7956 단어 자바주해springDI
Spring 학습 노트 에 의존 하 는 주해 (2) 1.0 주해, 단독으로 존재 할 수 없 으 며, 자바 의 한 유형 1.1 주해 1.2 주해 반사 2.0 spring 의 주해 spring 의 @Controller@Component@ Service//더 많은 전형 적 인 주석, 하지만 @Controller@Serviceset get 방법 대신 @ service ("personService") 를 사용 하 는 것 을 권장 합 니 다. @ Resource (name = personDao)@ Autowired//유형 에 따라 @ Qualifier ("student") 두 가 지 를 결합 하면 id 가 자바 에 해당 하 는 @ Resource (name = "student") 3.0 DI (주입 의존) 에 해당 하 는 주해 @ Resource, @ PostConstruct applicationContext. xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <bean id="person" class="come.demo.spring.di.annotation.Person">
    </bean>
    <bean id="student" class="come.demo.spring.di.annotation.Student"></bean>
    <context:annotation-config></context:annotation-config>
</beans>

Person.java
public class Person {
    /** * @Autowired  @Qualifier("student") ==  @Resource(name="student") */
    @Resource(name="student")
    private Student student;

    @PostConstruct  //      
    public void init(){
        System.out.println("init");
    }

    @PreDestroy // spring      
    public void destroy(){

    }

    public void say(){
        this.student.say();
    }
}

Student.java public class Student { public void say(){ System.out.println(“student”); } }
PersonTest.java
public class PersonTest {
    /** * 1、  spring   * 2、 spring      bean   (person,student) * 3、 spring         * <context:annotation-config></context:annotation-config> * spring      spring   bean                 @Resource   * 4、        @Resource   *   @Resource    name     "" *   @Resource         spring    id    *       ,    *        ,           *       ,   ,     ,   *   @Resource    name      "" *    @Resource  name    ,   spring    ID     *       ,    *        ,    * *   : *          ,       *             */
    @Test
    public void testDIAnnotation(){
        ApplicationContext context = 
                new ClassPathXmlApplicationContext("applicationContext.xml");
        Person person = (Person)context.getBean("person");
        person.say();
    }
}
4.0 scan-      (      ,      )
    4.1     
    <context:component-scan
        base-package="com.demo.spring.scan.annotation"></context:component-scan
    4.20.0       spring   ,     component
    1.0   spring  
    2.0  spring         ,  base-package              。
    3.0     spring   
                  @Component  
               @Component  
                 value     ““
                   ”“,                    
                @Component
                public class Person{
                }
                ==
                <bean id = "person" class="..person"
             value   ,       :
        @Component("aa")
        public class Person{}
        ==
        <bean id="aa" class="..Person"
    4.0   spring      bean,  @Resource  

5.0 소결
    1、IOC          ,spring        
    1.1 spring         
        1        2.    3.    
                   spring    ,     。
                  ?
                 spring            。
               lazy-init="true"  ,  contextgetbean       。
              scope="property"   , contextgetbean       。
           (init,         init-method,spring               )
          (destroy, spring2、DI     
        2.1    
          set                 ,      。    。
            、    、      。
        @Resource           。
           <context:component-scan        。

6.0 spring 주해 의 계승 xml 의 계승 이 필요 합 니 다. parent: spring 용기 의 계승 으로 주 해 된 계승 프로필 은 parent 가 필요 없습니다.

좋은 웹페이지 즐겨찾기