IT 발자취.../스프링
-
[스프링] 스프링의 제어 역전 및 의존성주입2IT 발자취.../스프링 2018. 12. 12. 20:10
이전 포스트에 이어서 스프링의 제어 역전 및 의존성 주입에 대해 알아 보겠습니다. 1. 제어 역전 개념 2. 스프링의 제어 역전 3. 스프링에서의 의존성 주입 4. 스프링 애플리케이션 컨텍스트 설정위의 순서대로 포스팅을 하도록 하겠습니다. 상당히 방대한 만큼 포스팅 수도 길어 질 것같습니다 ㅠㅠ1. 제어 역전과 의존성 주입 IoC, 즉 DI는 컴포넌트 의존성(종종 객체의 협력 객체(collaborator)라고 부름)을 제공하는 간단한 매커니즘을 제공하고 생명주기를 통해 의존성을 관리하는게 핵심입니다.말이 어려운데, 컴포넌트가 의존성에 접근할 수 있는 서비스 및 생명주기 동안 이들 의존성과 상호작용할 수 있는 서비스를 IoC가 제공한다는 말로 설명할 수 있습니다. 일반적으로 IoC는 두 개의 하위 분류로 ..
-
[스프링] 제어 역전 또는 의존성 주입1IT 발자취.../스프링 2018. 12. 12. 20:10
스프링에서 중요한 제어 역전 또는 의존성 주입을 알아보겠습니다. 내용이 길어질 것 같은 느낌이 듭니다...스프링 프레임워크의 코어는 제어 역전(IoC) 원칙을 기반으로 합니다. IoC는 컴포넌트 의존성의 생성 및 관리를 외부화하는 기법입니다. 이게 무슨말이냐?!! 예를 들면, 클래스 Foo가 클래스 B의 인스턴스에 의존해 어떤 작업을 수행한다고 가정합니다. 기본의 방법으로는 Foo가 new 연산자를 사용해 Bar인스턴스를 생성하거나 팩터리 클래스를 통해 인스턴스를 가져옵니다. //Foo클래스 class Foo { ...생략 //Bar인스턴스 생성 Bar b = new Bar(); ...생략 }하지만 IoC 접근 방식을 사용하면 Bar(또는 하위 클래스) 인스턴스가 외부 프로세스를 통해 런타임 시점에 Fo..
-
[스프링] 빈(Bean) 및 빈팩터리(BeanFactory)IT 발자취.../스프링 2018. 12. 12. 20:09
스프링 빈과 스프링의 의존성 주입 컨테이너의 핵심인 BeanFactory인터페이스에 대해 알아보겠습니다. 먼저 Bean 이란? - 컨테이너가 관리하는 컴포넌트 - 빈은 어느 정도 수준에서 자바빈 명세를 준수하지만, 이 사항이 꼭 필요한 것은 아니다. 특히 생성자 주입을 사용해 빈을 연결할 생각이라면 더욱 그렇다. BeanFactory란? 의존성과 생명주기 등을 포함해 컴포넌트를 관리하는 책임을 가짐 여기서 JSP의 JavaBean과 스프링 빈을 헤깔리지 않게 용어 정리를 잘해야합니다~!
-
[스프링] ApplicationContextIT 발자취.../스프링 2018. 12. 12. 20:08
스프링에서 ApplicationContext 인터페이스는 BeanFactory를 상속한다. ApplicationContext는 DI 서비스뿐 아니라 트랙잰션과 AOP 서비스, 국제화를 위한 메시지 소스(i18n), 애플리케이션 이벤트 처리 등 다른 서비스도 함께 제공한다. 스프링 기반의 애플리케이션을 개발 할 때는 ApplicationContext 인터페이스를 통해 스프링과 연동하는 방식을 권장합니다. 스프링은 직접 작성한 코드를 통해 ApplicationContext를 부트스트랩할 수 있게 지원하고 (ApplicationContext를 직접 인스턴스화하고 적절한 설정을 로드) 웹 컨테이너 환경에서는 ContextLoaderListener를 통한 부트스트랩도 지원한다. ApplicationContext의..
-
[스프링] 스프링이란?IT 발자취.../스프링 2018. 12. 9. 03:27
스프링이 무엇인가와 철학에 대해서 알아보고자 합니다. 보통 스프링은 자바 애플리케이션 개발을 위한 경량 프레임워크로 설명합니다. 위의 말을 두가지의 특징이 들어있습니다. 첫째, 스프링은 자바로 어떤 애플리케이션(단독 실행형, 웹, JEE애플리케이션 등)도 개발할 수 있게 도와줍니다. 이는 아파치 스트러츠 같은 다른 여러 프레임워크가 웹 애플리케이션에 국한되는 점과 다른 점입니다. 둘째, 위 설명에서 '경량'이란 부분은 클래스 개수나 배포판의 크기를 말하기보다는 전체적인 스프링 철학을 가리킵니다. 즉, 최소한의 영향을 준다는 의미입니다. 스프링은 스프링 코어를 활용할 때 애플리케이션 코드를 거의 바꾸지 않아도 된다는 점에서, 또 어느순간 스프링을 더 이상 사용하지 않기로 했을 때도 아주 간단하게 스프링을 ..
-
[IssueCase] java.sql.SQLException: Access denied for user ‘ID’@’xxx.xxx’ (using password: YESIT 발자취.../스프링 2018. 12. 9. 03:26
Spring Framework에서 MySQL connection을 할 때 생길 수 있는 오류입니다. 오류의 원인은 현재 IP로의 접근이 제한된것 인데요. 해결법은 MySQL에서 권한을 설정해주면 됩니다. GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 생성하고자하는 USERNAME과 권한을 주고자하는 IP주소 그리고 PASSWORD를 입력하시면됩니다. application.properties spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/testDB spring.datasource.username=user sprin..