반응형

2017/08 21

[Spring] Junit 으로 DB 테스트 할 때 @ContextCnofiguration 오류 발생 할 경우

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("value={"classpath:root-context.xml"}") public class LoginTest { @Autowired private DataSource dataSource; @Test public void createTest(){ try{ java.sql.Connection connection = dataSource.getConnection(); System.out.println(connection); }catch (Exception e) { } } } 위와 같은 코드로 했더니 java.lang.IllegalStateException: Failed to load Applicat..

개발/Spring 2017.08.29

[Spring] Spring boot 에서 JUnit 사용하기

처음으로 Spring boot 에서 JUnit 을 사용하려고 구글 검색을 여러 글이 보였다.하지만, 내 Spring boot 버전에서는 해당 글에 있는 어노테이션이 import 가 되지 않았다. 그 코드로는 다음과 같다. @RunWith(SpringJUnit4ClassRunner.class) ------------------------- ① @SpringApplicationConfiguration(classes = Test.class)------ ② @WebAppConfiguration -------------------------------------------------- ③ public class Test { ~ } 위 코드에서 ① 에서는 @RunWith 이란 어노테이션에 (SpringJUnit4C..

개발/Spring 2017.08.25

[Spring] Spring 한글 깨질 시에

스프링을 이용해 게시판을 구현하던 중에 게시글을 작성할 때 한글로 작성했더니 한글이 깨지는 경우가 발생하였다. [사진 1: 게시글 작성 페이지] [사진 2: 게시물 리스트 페이지] [사진 2] 와 같이 한글로 작성했을 때 깨져서 나타나게 되었다. 처음에는 DB 문제인 줄 알고 UTF-8 설정을 해주었지만 그래도 오류가 해결되지 않아서 내 코드 문제라는 것을 깨달았다. 역시 코드는 거짓말을 하지 않는다. request를 받는 메소드에서 해당 코드를 추가하면 UTF-8 설정이 되지만request.setCharacterEncoding("utf-8"); 모든 request 를 받는 메소드에 코드를 추가해주려면 너무 귀차농 [web.xml] encodingFilter org.springframework.web.f..

개발/Spring 2017.08.24

[Spring] Open API (Application Programming Interface), REST

Open APIOpen API 는 말 그래도 개발형 API이다.API가 응용 프로그램을 개발할 때 사용하는 인터페이스라는 의미이므로, Open API는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스를 말한다. - Daum, Naver 등의 포털 사이트나 통계청, 기상청 등과 같은 관공서에서도 가지고 있는 데이터를 외부 응용 프로그램에서 사용할 수 있도록 Open API 를 제공하고 있다. - Open API 와 함께 자주 거론되는 기술이 REST 이며, 대부분 Open API는 REST 방식으로 지원되고 있다. REST (REpresentational Safe Transfer)HTTP URI + HTTP Method HTTP URI를 통해 제어할 자원(Resource)을 명시하고, HTT..

개발/Spring 2017.08.21

[Spring] 프리젠테이션 계층, 서비스 계층, 데이터 액세스 계층, 도메인 모델 클래스

프리젠테이션 계층 - 브라우저상의 웹 클라이언트의 요청 및 응답을 처리- 상위계층(서비스 계층, 데이터 액세스 계층)에서 발생하는 Exception에 대한 처리- 최종 UI에서 표현해야 할 도메인 모델을 사용- 최종 UI에서 입력한 데이터에 대한 유효성 검증 기능을 제공- 비즈니스 로직과 최종 UI를 분리하기 위한 컨트롤러 기능을 제공- @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속함 서비스 계층 - 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증- 트랜잭션 처리- 프리젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하지 않게 애플리케이션의 유연성을 증가- 다른 계층들과 통신하기 위한 인터페..

개발/Spring 2017.08.21

[Spring] Bean 등록 Annotation

Bean 등록 Annotation @Component 컴포넌트를 나타내는 일반적인 스테레오 타입으로 태그와 동일한 역할을 한다. @Repository Persistence 레이어, 영속성을 가지는 속성(파일, 데이터베이스)을 가진 클래스 @Service 서비스 레이어, 비즈니스 로직을 가진 클래스 @Controller 프리젠테이션 레이어, 웹 어플리케이션에서 웹 요청과 응답을 처리하는 클래스 Bean 의존관계 주입 Annotation @Autowired, @Resource 어노테이션은 의존하는 객체를 자동으로 주입해 주는 어노테이션이다. @Autowired - 정밀한 의존관계 주입 (Dependency Injection)이 필요한 경우에 유용하다.- @Autowired는 프로퍼티, setter 메소드, ..

개발/Spring 2017.08.21

[Spring] Ioc컨테이너와 DI(Dependency Injection) - 3

Spring DI 컨테이너의 개념 Spring DI 컨테이너가 관리하는 객체를 빈(bean)이라고 하고, 이 빈들을 관리한다는 의미로 컨에이너를 빈 팩토리라고 부른다. - 객체의 생성과 객체 사이의 런타임 관계를 DI 관점에서 볼 때는 컨테이너를 BeanFactory 라고 한다. - Bean Factory에 여러가지 컨테이너 기능을 추가하여 ApplicationContext 라고 부른다. BeanFactory - Bean을 등록, 생성, 조회, 반환 관리함- 보통은 BeanFactory를 바로 사용하지 않고, 이를 확장한 ApplicationContext를 사용함- getBean() 메소드가 정의되어 있음 ApplicationContext - Bean을 등록, 생성, 조회, 반환 관리하는 기능은 Bean..

개발/Spring 2017.08.18

[Spring] Ioc컨테이너와 DI(Dependency Injection) - 2

DI 의 개념각 클래스간의 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말함 - 개발자들은 단지 빈 설정파일에서 의존관계가 필요하다는 정보를 추가하면 된다. (xml, annotation)- 객체 레퍼런스를 컨테이너로부터 주입 받아서, 실행 시에 동적으로 의존관계가 생성된다.- 컨테이너가 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해 주는 것이다. DI 의 장점- 코드가 단순해진다.- 컴포넌트 간의 결합도가 제거된다. DI의 유형으로 3가지가 있다.1. Setter Injection2. Constructor Injection3. Method Injection Setter Injection : Setter 메소드를 이용한 의존성 삽입- 의존성을 입력 받는 setter ..

개발/Spring 2017.08.18

[Spring] Ioc 컨테이너와 DI (Dependency Injection) - 1

IoC (제어권의 역전) :객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의마한다. 컴포넌트 의존관계 결정 (component dependency resolution), 설정(configuration) 및 생명주기 (lifecycle)를 해결하기 위한 디자인 패턴 (Design Pattern) IoC가 아닌 경우에는 개발자가 객체를 신규 생성한다고 볼 수 있지만, IoC인 경우에는 프레임워크 컨테이너가 객체를 생성해 개발자의 코드에 주입시켜준다고 볼 수 있다. 이것이 바로 제어권의 역전인 Inversion of Control 이다. IoC 컨테이너 :스프링 프레임워크도 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있음. 즉, IoC 컨테이너 기능을 제공한..

개발/Spring 2017.08.18
반응형