복붙노트

[SPRING] Spring Framework 애플리케이션에서 Beans.xml 설정 파일 사용에 관하여

SPRING

Spring Framework 애플리케이션에서 Beans.xml 설정 파일 사용에 관하여

봄 MVC를 공부하고 있습니다. 오늘 JDBC DAO를 구현하는 방법을 이해하려고 노력하면서 Spring (Spring MVC가 아닌)에서이 "Hello World"를 발견하고 그것을 보려고합니다. (DAO를 실현하기 위해서는 분리 된 Spring 데이터에 대한 액세스를 실행하는 프로젝트 ...)

http://www.tutorialspoint.com/spring/spring_hello_world_example.htm

OK, 이것은 독립 실행 형 응용 프로그램이며 웹 응용 프로그램이 아니므로 웹 응용 프로그램 구조 (WEB-INF 폴더, web.xml 파일 및 웹 응용 프로그램에있는 디스패처 서블릿 구성 파일)가 없습니다.

이 예제에서는 Beans.xml 구성 파일을 사용하여 고유 한 ID를 다른 bean에 할당하고 Spring 소스 파일에 영향을주지 않고 다른 값으로 객체를 만드는 것을 제어합니다 ...

예를 들어이 예제에서 Beans.xml 파일을 사용하여 "message"변수에 "Hello World"메시지 값을 전달하므로 HelloWorld.java 및 MainApp.java 파일에 영향을주지 않고이 값을 인쇄 할 수 있습니다

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

<beans xmlns="http://www.springframework.org/schema/beans"
    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-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
       <property name="message" value="Hello World!"/>
   </bean>

</beans>

그래서 그것에 대해 당신에게 몇 가지 질문이 있습니다.

해결법

  1. ==============================

    1.1)이 Beans.xml (실제로 원하는 이름으로 지정할 수 있음)은 Spring 구성 파일입니다. 구성 메타 데이터를 보유합니다.

    1)이 Beans.xml (실제로 원하는 이름으로 지정할 수 있음)은 Spring 구성 파일입니다. 구성 메타 데이터를 보유합니다.

    공식 Spring 문서에서 :

    구성 메타 데이터는 전통적으로 간단하고 직관적 인 XML 형식으로 제공되지만 구성 메타 데이터의 유일한 허용 형식은 아닙니다 (두 번째 질문에 대한 답변 참조)

    그리고 네, 맞습니다 : 다른 빈을 참조로 삽입 할 수 있습니다.

    공식 Spring 문서에서 :

    공식 문서에서 다른 빈에 대한 참조를 사용하는 간단한 예 :

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           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.xsd">
    
        <bean id="exampleBean" class="examples.ExampleBean">
            <!-- setter injection using the nested <ref/> element -->
            <property name="beanOne">
                <ref bean="anotherExampleBean"/>
            </property>
    
            <!-- setter injection using the neater 'ref' attribute -->
            <property name="beanTwo" ref="yetAnotherBean"/>
            <property name="integerProperty" value="1"/>
        </bean>
    
        <bean id="anotherExampleBean" class="examples.AnotherBean"/>
        <bean id="yetAnotherBean" class="examples.YetAnotherBean"/>
    
    </beans>
    

    2) 공식 Spring 문서에서 :

    또한 이것을 읽으십시오 : XML이없는 스프링 : 스프링 애노테이션과 스프링 XML 파일의 차이점

  2. ==============================

    2.나는 / src / main / resources / 폴더를 만들고이 beans.xml 파일을 거기에 위치시켰다 :

    나는 / src / main / resources / 폴더를 만들고이 beans.xml 파일을 거기에 위치시켰다 :

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
     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-4.3.xsd">
    
     <bean id="employee" class="HelloSpring.Employee">
     <property name="name" value="test spring"></property>
     </bean>
    </beans>
    

    그것은 효과가있다!

    나는 다음과 같이 그것을 액세스했다 :

    package HelloSpring;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Customer {
    
        public static void main(String[] args) {
            ApplicationContext ctx = new ClassPathXmlApplicationContext("./beans.xml");
    
            Employee obj = (Employee) ctx.getBean("employee");
            obj.displayName();
        }
    }
    
  3. from https://stackoverflow.com/questions/14419123/about-the-use-of-beans-xml-configuration-file-in-spring-framework-application by cc-by-sa and MIT license