programing

Spring Boot 어플리케이션의 XML 빈은 어디에 배치해야 합니까?

topblog 2023. 3. 29. 21:10
반응형

Spring Boot 어플리케이션의 XML 빈은 어디에 배치해야 합니까?

봄(현재 v4)으로 돌아갑니다.이제 와 함께라면 모든 것이 좋다.@SpringBootApplicationXML에서 다른 콩을 정의하는 방법을 설명하는 것을 잊어버린 것 같습니다.

예를 들어, http://docs.spring.io/spring-integration/reference/html/sftp.html에 정의되어 있는 「SFTP Session Factory(SFTP 세션 팩토리)」를 작성하려고 합니다.

빈을 정의하는 XML이 있습니다만, 빈을 어디에 배치하고 링크하려면 어떻게 해야 합니까?이전에 했던 작업:

ApplicationContext context = new ClassPathXmlApplicationContext(
                "classpath:applicationContext.xml");

파일 이름 및 위치를 지정하려고 하는데, 지금 사용하려고 합니다.

ApplicationContext ctx = SpringApplication.run(Application.class);

XML 파일은 어디에 저장해야 합니까?그것을 부르는 마법의 봄 이름이 있나요?

베이스로 시작하는 한@Configuration처음에 수업할 때 같이 있는 것처럼 들릴 수도 있는데@SpringBootApplication주석을 사용하여 XML 컨피규레이션파일을 포함할 수도 있습니다.

@SpringBootApplication
@ImportResource("classpath:spring-sftp-config.xml")
public class SpringConfiguration {
  //
}

XML 설정을 Java Configuration으로 변환할 수도 있습니다.이 경우 다음과 같습니다.

@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주석입니다.

스프링 부팅의 이상적인 개념은 xml 파일을 피하는 것이지만 xml bean을 유지하려면 추가만 하면 됩니다.@ImportResource("classPath:beanFileName.xml").

를 삭제할 것을 권장합니다.spring-sftp-config.xml파일. 그리고 이 파일을 스프링 주석 기반 콩으로 변환합니다.그래서 어떤 클래스가 콩으로 만들어졌든 간에.그냥 쓰세요@Service또는@Component클래스 이름 앞에 주석을 붙입니다.예를 들어 다음과 같습니다.

XML 기반:

<bean ID="id name" class="com.example.Employee">

주석:

@Service or @Component
class Employee{
}

그리고, 추가@ComponentScan("Give the package name")이것이 최선의 접근법입니다.

언급URL : https://stackoverflow.com/questions/31677553/where-do-i-put-my-xml-beans-in-a-spring-boot-application

반응형