====== Spring Static Field Injection ======
===== 일반적인 static field =====
Spring에서 static field 에 객체를 주입하는 방법은, non-static setter를 만들어서 해당 메소드에 ''@Resource/@Autowired''를 해주면 된다.
[[http://www.connorgarvey.com/blog/?p=105|Spring annotations static injection tutorial]]의 코드를 참조하자면,
@Component
public class UserUtils
{
private static UserAccessor userAccessor;
/**
* Sets the user DAO. This method should never be called except by Spring
* @param userAccessor The user accessor to set
*/
@Autowired(required = true)
public void setUserAccessor(userAccessor UserAccessor) {
UserUtils.userAccessor = userAccessor;
}
}
===== Servlet 리소스 계통에 대한 static field =====
JSP Tag Library등에 주입할 때는 View Resolver 설정에 **exposeContextBeansAsAttributes**를 다음과 같이 true로 지정한 뒤에 Request Context에서 Bean 이름으로 읽어들이는 것도 가능하다. [[http://stackoverflow.com/questions/1296052/how-to-inject-spring-beans-into-a-jsp-2-0-simpletag|java - How to inject spring beans into a jsp 2.0 SimpleTag?]] 참조.