最近开发一个Java应用程序,希望能使用Spring来实现依赖注入。
在Web应用程序中,可以在web.xml文件中配置listener来自动实现注入。
在Java Application中,可以通过如下的方式来加载Spring:
ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");
Hello hello = ctx.getBeans("hello");
但这样的一个问题是,在每次使用一个bean时,都需要显示调用一次getBeans。
不知有什么好的方法,能够让Spring自动加载对象,而不需要显式调用getBeans?
更多 0
예를 따라 두 줄을 더 작성하세요.
으아아아웹 프로젝트에서 처음에 요청을 처리하는 레이어는 여전히 getBeans()를 통해 생성되어야 합니다. 이 단계는 tomcat/strtus/springMVC에 의해 수행됩니다.
Spring은 관리되는 클래스를 자동으로 주입합니다. 그러나 프로그램에서 시작된 메인 클래스는 Spring 관리에 의해 생성되지 않습니다.
Autowired가 필요합니다
Spring의 종속성 주입을 사용하려면 먼저 Spring에서 Bean을 가져와서 Bean의 종속성이 주입되었는지 확인해야 합니다. 새로운 객체를 직접 생성한다면 Spring이 이를 어떻게 주입할 수 있을까요?
getBeans 메소드를 직접 캡슐화할 수 있습니다
HELLO를 멤버 변수로 처리한 다음 @autowired 또는 @Resourse로 이동해야 합니다
종속성 주입은 두 단계에 불과합니다.
빈 선언
콩 주입
빈 선언 방법:
xml 포함
클래스에 @Component, @Service 등 추가
@Configuration을 사용하여 클래스에 @Bean 메소드를 작성
콩 주입 방법:
xml 포함
@Autowire와 같은 주석
완전하지는 않지만 일반적으로 사용되는 내용이어야 합니다. 자세한 내용은 spring 문서 및 ioc 부분을 참조하세요
질문해보자
웹 애플리케이션에서는 web.xml에 리스너를 구성할 필요가 없습니다(전제 조건은 servlet3.0+, 예: tomcat7+)
Java 애플리케이션의 경우 Spring Boot를 사용해 보는 것은 어떨까요?
추천 주제 소유자는 @ChaChage Servlet 3 + Spring MVC 제로 구성: 모든 xml 제거를 살펴볼 수 있습니다