[SPRING] XML Bean은 Spring Boot 애플리케이션에 어디에 넣어야합니까?
SPRINGXML Bean은 Spring Boot 애플리케이션에 어디에 넣어야합니까?
나는 봄으로 돌아 간다 (현재 v4). @SpringBootApplication과 다른 주석을 사용하는 것이 좋지만 모든 문서에서 XML로 다른 bean을 정의하는 방법을 언급하는 것을 잊어 버릴 것 같습니다!
예를 들어 다음에서 정의 된 "SFTP 세션 팩토리"를 만들고 싶습니다. http://docs.spring.io/spring-integration/reference/html/sftp.html
콩을 정의하기위한 XML의 멋진 비트가 있습니다. 그러나 지구상 어디에서 그것을 넣을 수 있습니까? 어떻게 연결합니까? 이전에 나는 :
ApplicationContext context = new ClassPathXmlApplicationContext(
"classpath:applicationContext.xml");
파일 이름과 위치를 지정하지만 지금은 사용하려고합니다.
ApplicationContext ctx = SpringApplication.run(Application.class);
XML 파일은 어디에 두어야합니까? 그것을 부르기위한 마법의 봄 이름이 있습니까?
해결법
-
==============================
1.@SpringBootApplication을 사용하는 것처럼 보이는 기본 @Configuration 클래스로 시작하는 한 @ImportResource 주석을 사용하여 XML 구성 파일을 포함 할 수 있습니다.
@SpringBootApplication을 사용하는 것처럼 보이는 기본 @Configuration 클래스로 시작하는 한 @ImportResource 주석을 사용하여 XML 구성 파일을 포함 할 수 있습니다.
@SpringBootApplication @ImportResource("classpath:spring-sftp-config.xml") public class SpringConfiguration { // }
-
==============================
2.또한 XML 구성을 Java 구성으로 변환 할 수 있습니다. 귀하의 경우 그것은 다음과 같습니다.
또한 XML 구성을 Java 구성으로 변환 할 수 있습니다. 귀하의 경우 그것은 다음과 같습니다.
@Bean public DefaultSftpSessionFactory sftpSessionFactory() { DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(); factory.setHost("localhost"); factory.setPrivateKey(new ClassPathResource("classpath:META-INF/keys/sftpTest")); factory.setPrivateKeyPassphrase("springIntegration"); factory.setPort(22); factory.setUser("kermit"); return factory; }
이 메서드는 @SpringBootApplication 주석을 사용하여 클래스에 넣을 수 있습니다.
-
==============================
3.봄 부팅 이상적인 개념은 XML 파일을 피할 수 있습니다. 하지만 xml bean을 유지하려면 @ImportResource ( "classPath : beanFileName.xml")를 추가하면됩니다.
봄 부팅 이상적인 개념은 XML 파일을 피할 수 있습니다. 하지만 xml bean을 유지하려면 @ImportResource ( "classPath : beanFileName.xml")를 추가하면됩니다.
spring-sftp-config.xml 파일을 제거하는 것이 좋습니다. 그리고이 파일을 Spring Annotation 기반 Bean으로 변환한다. 그래서 어떤 클래스가 bean으로 만들어 졌는지. 클래스 이름 앞에 @Service 또는 @Component 주석을 쓰면됩니다. 예 :
XML 기반 :
<bean ID="id name" class="com.example.Employee">
주석:
@Service or @Component class Employee{ }
그리고 @ComponentScan을 추가하십시오 ( "패키지 이름 지정"). 이것이 최선의 방법입니다.
from https://stackoverflow.com/questions/31677553/where-do-i-put-my-xml-beans-in-a-spring-boot-application by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 3 / Hibernate에서 트랜잭션을 롤백하기위한 베스트 프랙티스 (0) | 2019.03.05 |
---|---|
[SPRING] HttpServletRequestWrapper, setReadListener 예제 구현 / isFinished / isReady? (0) | 2019.03.05 |
[SPRING] JDBCTemplate.queryForMap을 사용하여지도 데이터를 얻는 방법 (0) | 2019.03.05 |
[SPRING] HTML과 JSON 요청에 대해 Spring MVC에서 예외를 다르게 처리하는 방법 (0) | 2019.03.04 |
[SPRING] Joda DateTime을 ISO 8601 형식으로 자동 포맷 (0) | 2019.03.04 |