본문 바로가기

Java714

[Spring] 중요한 어노테이션 정리 및 복습 @Configuration @Bean 메서드가 하나 이상 선언함을 나타냅니다. Spring 컨테이너에서 처리하여 Bean 정의를 생성합니다. @Configuration을 선언하므로서 Java 설정 파일을 만든다는 것을 의미합니다. @Configuration public class GamingConfiguation { // Spring Bean(Spring에서 관리하는 것들을 의미) 정의 가능 @Bean public GamingConsole game() { var game = new PacmanGame(); return game; } @Bean public GameRunner gameRunner(GamingConsole game) { return new GameRunner(game); } } Java 설정.. 2023. 10. 9.
[Spring] Spring XML 설정 Spring XML 설정 Spring 프레임워크의 초기에는 Java 설정이 없고 XML 설정만 있었습니다. 그래서 이와 같이 XML 설정파일을 작성하여 Bean들을 생성했습니다. 그 후 public class XmlConfigurationLuncherApplication { public static void main(String[] args) { try (var context = new ClassPathXmlApplicationContext ("contextConfiguration.xml")) { Arrays.stream(context.getBeanDefinitionNames()) .forEach(System.out::println); System.out.println(context.getBean("na.. 2023. 10. 9.
[Spring] Jakarta Contexts and Dependency injection (CDI) Jakarta Contexts and Dependency injection (CDI) CDI 규격은 2009년 12월에 Java EE 6 플랫폼에 도입되어 지금은 Jakarta Contexts and Dependency Injection이라고 부르게되었습니다. CDI는 규격이고, 인터페이스이며, 구현이 없고 Spring Framework에서 CDI를 구현합니다. CDI에서 중요한 API 어노테이션 Inject (~ 스프링의 AutoWired와 비슷함) Named (~ 스프링의 Component와 비슷) Qualifier Scope Singleton etc.. 예시 코드 //@Component @Named class BussinessService { private DataService dataService.. 2023. 10. 6.
[Java] Java EE, J2EE, Jakarta EE Java EE, J2EE, Jakarta EEJava EE, Java 2EE, J2EE 또는 현재 Jakarta EE는 실제로 이들은 모두 동일한 것, 즉 Java SE를 확장하는 엔터프라이즈 사양 세트에 대한 다른 이름입니다. 역사초기 Java 버전에서 엔터프라이즈 기능 대부분은 JDK (Java 개발 키트)에 Java 언어로 직접 구축되어 있었습니다. 하지만 시간이 지나면서 분리되었고, J2EE, 즉 Java 2 플랫폼, 엔터프라이즈 에디션에 따라 분리되었습니다. 서블릿, JSP, EJB 등 관련된 모든 표준이 새로운 J2EE(Java 2 플랫폼, 엔터프라이즈 에디션)에 따라 만들어졌고 JDK에서 분리되었습니다. 이후 J2EE는 Java EE가 되었고 J2EE를 Java EE, 즉 Java 플랫폼, .. 2023. 10. 6.
[Spring] Bean 스코프 싱글톤 스코프 기본적으로 Spring Framework에서 생성되는 모든 Bean은 싱글톤으로 생성됩니다. Spring IOC 컨테이너 당 객체 인스턴스를 딱 하나를 가지게 됩니다. 따라서 Spring IoC 컨테이너에서 같은 인스턴스를 다시 사용하고 싶다면 싱클톤 스코프를 사용하면 됩니다. @Component class NormalClass { } @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) @Component class PrototypeClass { } @Configuration @ComponentScan public class BeanScopesLuncherApplication { public static void main(String[] ar.. 2023. 10. 5.
[Spring] @Component와 @Bean의 차이 Spring을 사용하다 보면 @Component와 @Bean을 사용헤보게 되고 둘 다 빈을 생성하는데 차이점에 대해서 궁금하게 되었습니다. @Bean @Configuration public class TestConfiguration { @Bean public String name() { return "MyName"; } @Bean public int age() { return 25; } @Bean은 외부 라이브러리 또는 이미 정의되어 있는 객체들이 서로 종속성을 가지고 있을 경우의 빈 등록에 사용하는 어노테이션입니다. 또한 반환 값이 바로 Bean으로 등록되며 이미 정의된 기본 객체를 재정의하거나 내가 만든 객체의 종속성을 위해 빈을 등록할 때 사용합니다. 즉, 메소드 단위에서 개발자가 외부 라이브러리 .. 2023. 10. 2.