@ContextConfiguration( locations = {"file:Deployed Resources/webapp/WEB-INF/spring/**/*.xml"}) 위와 같은 코드를 작성이후 ContextConfiguration cannot be resolved to a type 에러가 발생했다. spring-test dependency를 추가해주었는데도 계속오류가나고 spring-test의 버전을 바꾸어서 주입시켜도 계속 오류가 났다. 그런데 해결방법은 pom.xml에서 spring-test 라이브러리를 추가할 때 부분을 주석처리해주는 것이였다.
개발 방식중에서는 TDD(Test-driven Development)라는게 있다. 테스트 주도 개발에서 사용되지만 코드의 유지 보수 및 운영 환경에서의 에러를 미리 방지하기 위해서 단위 별로 검증 하는 테스트 프레임워크이다. -단위테스트 : 작성한 코드가 기대하는 대로 동작하는지를 검증하는 절차 -JUnit : Java기반의 단위 테스트를 위한 프레임워크 Annotation 기반으로 테스트를 지원하며, Assert를 통하여 (예상값, 실제값)을 통해 검증한다. 다음은 Junit을 이용해서 단위 테스트를 하는 예제 코드이다. 1. ICalculator 인터페이스 1 2 3 4 5 public interface ICalculator { int sum(int x, int y); int minus(int x, ..
@Bean은 메소드 레벨에서 선언하며, 반환되는 객체(인스턴스)를 개발자가 수동으로 등록하는 Annotation인 반면에 @Component는 클래스 레벨에서 선언하며 스프링이 Runtime(실행) 될 시에 Component를 스캔하여 자동으로 bean을 찾고 등록하는 Annotation이다. Bean Component 메소드에 사용 클래스에 사용 개발자가 컨트롤이 불가능한 외부 라이브러리 사용시 사용 개발자가 직접 컨트롤이 가능한 내부 클래스에 사용 추가적으로 @Configuration은 @bean과 동일하게 개발자가 컨트롤이 불가능한 외부 라이브러리 사용시 한번에 여러개의 Bean을 등록하기 위해서 사용하는 Annotation이다. @Configuration 예제 코드 12345678910111213..
스프링에서 객체를 직접관리하는데 그렇게 직접관리 되는 객체를 bean라 하고 그 bean들이 관리되는 장소가 Spring Container인 것이다. 그리고 Spring Container가 이렇게 객체들을 제어하는 권한을 개발자로부터 가져갔기 때문에 ioc(제어역전현상)이라고 말한다. 다음의 예제 코드를 살펴보자. 먼저 iocSpring이라는 웹앱의 예제코드이다. (설명은 주석으로 작성함) 1.iocSpringApplication.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ..
DI(Dependency Inject)이란 객체를 직접 생성하는 것이 아니라 외부에서 생성한 후 주입시키는 것을 말한다. 기본적으로 Spring에서는 이러한 방식을 사용하고 있다. 아래는 DI에 관한 예제 코드이다. 1. Main.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package com.company.ioc; public class Main { public static void main(String[] args) { String url = "www.naver.com/books/it?page=10&size=20&name=spring-boot"; /..
Why We Use Sping and EJB 2000년 초반 자바진영에서 EJB라는 것이 존재했었다. EnterPrise Java Beans을 말하는데 스프링이랑 JPA같은 다합쳐놓은 종합세트느낌이였다. 이때까지만 해도 EJB는 자바의 표준 기술이었기때문에 금융권에서 널리사용되었다. 그래서 금융권에서 EJB 기술을 사용해서 서버를 팔아먹기에 좋은 keyword였다. 그 당시에 Container 기술, 설정에 의한 트랙잭션관리, 분산처리 기술(지금으로 따지면 service, dao로 분리) 와 같은 고급기술들을 사용할 수 있었다. 그리고 이때 ORM으로 EntityBean이라는 ORM 기술을 가지고 있었는데, DB에 저장된 데이터를 Java의 객체로 표현하기 위한 EJB Component였다. 지금이야 톰..
package com.example.objectmapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class ObjectMapperApplicationTests { @Test void contextLoads() throws JsonProcessingException { System.out.println("hello"); // Object Mapper..