전체 글
-
TMSWeb 개발/Web 기본 지식 2022. 1. 2. 14:03
Transportation Management System TMS는 기술을 사용하여 기업이 들어오고 나가는 상품의 물리적 이동의 계획, 실행등을 최적화 하고, 선적이 규정을 준수하는지 확인하고, 적절한 문서를 사용할 수 있도록 지원하는 문류 플랫폼이다. -TransPortation Management 솔루션 -Transportation Management 소프트웨어 등 으로 불리는 TMS는 일상적인 운송 작업, 무역 규정 준수 정보 및 문서에 대한 가시성을 제공하고 화물및 상품의 적시 배송을 보장한다. 또한 TMS는 운송프로세스를 간소화하고, 기업이 육상, 항공 또는 행상 운송 운영을 보다 쉽게 관리하고 최적화할 수 있도록 한다. Transportation Management 외에도 일반적인 SMC시스템..
-
스프링 빈 조회 - 동일한 타입이 둘 이상FrameWork/Spring&Spring-boot 2022. 1. 1. 14:35
타입으로 조회시 같은 타입의 스프링 빈이 둘 이상이면오류가 발생한다. 이때는 빈 이름을 지정하자 'ac.getBeansOfType( )'을 사용하면 해당 타입의 모든 빈을 조회할 수 있다. @Configuration static class SameBeanConfig{ } -> class안에서 class를 사용했다는 것은 scope을 class로 제한하겠다는것. @Configuration static class SameBeanConfig{ @Bean public MemberRepository memberRepository1(){ return new MemoryMemberRepository(); } @Bean public MemberRepository memberRepository2(){ return new..
-
스프링 빈 조회 - 기본☆FrameWork/Spring&Spring-boot 2022. 1. 1. 13:01
스프링 컨테이너에서 스프링 빈을 찾는 가장 기본적인 조회 방법 'ac.getBean('빈이름' , '타입') 'ac.getBean(타입)' 조회 대상 스프링 빈이 없으면 예외 발생 -'NoSuchBeanDefinition: No bean nasted 'xxxx' avaliable' package hello.core.beanfind; import hello.core.AppConfig; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit..
-
컨테이너에 등록된 모든 빈 조회FrameWork/Spring&Spring-boot 2022. 1. 1. 11:42
개발 팁★ -Junit5 부터는 class 앞에 public 표시 안해도 된다. -iter+Tab ->향상된 for문 자동완성 -soutm -> 메서드 문을 찍어준다 -soutv -> 변수명 찍어준다. -스프링 컨테이너에 실제 스프링 빈들이 잘 등록 되었는지 확인해보자 package hello.core.beanfind; import hello.core.AppConfig; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.An..
-
스프링 컨테이너와 스프링 빈FrameWork/Spring&Spring-boot 2022. 1. 1. 10:48
스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정을 알아보자 //스프링 컨테이너 생성되 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 'ApplicationContext'를 스프링컨테이너라 한다. 'ApplicationContext'는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, annotation 기반의 자바 설정 클래스로 만들 수 있다. 직접 'AppConfig'를 사용했던 방식이 어노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정클래스를 기반으로 스프링컨테이너('ApplicationContext')를 만들어보자 -'ne..
-
스프링으로 전환하기FrameWork/Spring&Spring-boot 2021. 12. 31. 19:47
-지금까지 순수한 자바 코드만으로DI를 적용했다. 이제 스프링을 사용해 보자 AppConfig 스프링기반으로 변경 @Configuration : 어플리케이션의 설정·구성정보를 담당하는 class에 붙는 annotation @Bean : 스프링 컨테이너에 담을 객체를 생성하는 메서드에 붙는 annotation package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.O..
-
Ioc DI,그리고 컨테이너FrameWork/Spring&Spring-boot 2021. 12. 31. 15:45
제어의 역전IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현체를 생성하고, 연결하고, 실행했다. 한마디로 구현체가 기존 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스러운 흐름이다. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. 예를 들어서 'OrdeServiceImpl'은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행 될지 모른다. 프로그램에 대한 제어 흐름 권한은 모두 AppConfig가 가지고 있다. 심지어 'OrderServiceImpl'도 AppConfig가 생성한다. 그리고 AppConfig는 'Or..