Service 객체 분리, Oracle 연결 정보 분리
Section 1. Service 객체 분리
1. Service 객체와 Controller
- 아래와 같이 컨트롤러가 서비스 객체를 멤버변수로 가지고있을 때 (DI 상황) 서비스 객체의 기능은 유지하며 기술 방법을 달리한다면 코드를 바꿔야되는 상황이 오게됨
- 구체적인 객체 사용이 아닌 인터페이스를 사용하여 둘 사이의 결합력을 낮춤 (느슨한 결합력)
// JDBC 를 JPA로 변경한다면 재컴파일 및 재빌드 필요없이 설정파일만 변경
<bean id ="noticeService" class="webprj.service.jdbc.JDBCNoticeService"/>
2. Service 인터페이스
- NoticeService 인터페이스를 생성
- DB select / insert / update / delete 기능 추상 메서드 선언
3. JDBCNotcieService 객체
- Notice 인터페이스를 구현한 JDBCNotcieService 객체
4. Controller
- 특정 noticeService 객체가 아닌 NoticeService 인터페이스를 참조형으로하여 멤버변수로 Service 객체를 DI
Section 2. Oracle 연결 정보 분리
1. OracleDB Connection
- url - 접속 및 연결하려고 하는 OracleDB 의 주소 및 포트번호
- uid / pwd - 계정 ID / PW
- driver - Java 와 Oracle 사이의 연결을 도와주는 드라이버
2. 연결 정보 분리의 필요성
- 자바코드 내에 오라클 연결 코드를 삽입하면 컴파일을 통해 바이너리코드화되어 배포되는데 만약 오라클 계정 비밀번호가 바뀌거나 호스트의 정보가 바뀌게된다면 오라클 연결 정보 코드가 있는 모든 부분을 찾아서 바꾸고 재컴파일 및 재배포 해야되는 번거로움이 발생
- 연결 정보를 xml 설정 파일에 텍스트로 지시하여 필요한 객체 DI 하는 방식으로 바꿈
3. spring jdbc 라이브러리 주입
- release 버전으로 (module 버전 x)
4. DataSource 클래스 bean 지정
- DataSource 클래스 생성 및 속성 지정 (oracle 접속정보)
- noticeService 객체에 DataSoruce DI
5. JDBCNotcieService 객체
- DataSource 를 멤버변수로 DI
- Connection con = dataSource.getConnection(); 코드 삽입
Author And Source
이 문제에 관하여(Service 객체 분리, Oracle 연결 정보 분리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@codren/Service-객체-분리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)