전체보기
-
08 DAO의 작성과 적용(1)Spring/02 Spring DI와 AOP 2023. 7. 2. 21:37
DAO의 작성과 적용(1) 1) DAO(Data Access Object)란? - 데이터(data)에 접근(access)하기 위한 객체(object) dao - Database에 저장된 데이터를 읽기(R), 쓰기(C), 삭제(D), 변경(U)을 수행 CRUD - DB 테이블 하나의 DAO를 작성 1:1 2) 계층(layer)의 분리 >> 기능 LoginController : id, pwd체크 , RegisterController : 회원가입 >> LoginController에 +selectUser(String):User를 넣고 직접 DB에 접근 >> RegisterController도 회원정보를 보기위해 +selectUser(String):User가 필요하다 >> +selectUser(String):Us..
-
07 Spring으로 DB다루기 TDDSpring/02 Spring DI와 AOP 2023. 7. 1. 21:35
Spring으로 DB다루기 TDD 1) insertUser( ), insertUserTest 메서드 추가 DBConnectionTest2Test.java (insertUser( ), insertUserTest 추가) User.java 결과 확인 - 결과 확인 전에 MySQL 에디터에서 커밋이나 롤벡을 해놓고 테스트 실행 할 것 >> 쿼리에디더가 작업이 처리가 안된 상태에서 다른 컨넥션으로 같은 테이블을 건드렸기 때문에 rock이 걸려 작업을 기다리다가 끝나버인 경우 (오류 발생 원인) - Test 성공 - 값의 중복 에러 >> Test를 2번 진행했을 때 오류 >> id의 값이 이미 저장되어 있기 때문에 오류 발생 >> 실행할 때마다 다른 id 값을 입력해서 테스트를 진행해야된다 (delete 메서드 작..
-
06 Spring으로 DB연결하기Spring/02 Spring DI와 AOP 2023. 6. 30. 23:11
Spring으로 DB연결하기 DBConnectionTest.java (Workbench 연결방법) >> 자바프로그램으로 mysql을 연결하려면 jdbc 드라이버가 필요 1) jdbc 드라이버를 Maven repository에서 다운로드 >> 클릭 후에 버전 다운로드 pom.xml(다운로드) DBConnectionTest.java(결과확인) >> ResultSet은 2차원 테이블 형태를 이루고 있다 >> 위에 방식은 JDBC API 2) JDBC API → Spring Jdbc 변경 >> 클릭 후에 버전 다운로드 pom,xml(다운로드) DBConnectionTest.java2 (결과확인) >> 스프링제공은 데이터 베이스 정보가 바뀔 때 마다 고치고 컴파일을 다시해야된다 >> new DriverManage..
-
05 Spring DI 활용하기(2) - 이론Spring/02 Spring DI와 AOP 2023. 6. 28. 22:22
Spring DI 활용하기(2) - 이론 6) IoC와 DI - 제어의 역전 (IoC) - 제어의 흐름을 전통적인 방식과 다르게 뒤바꾸는 것 의존성 주입 DI - 사용할 객체를 외부에서 주입받는 것 >> 전통적인 방식은 호출 방식 사용자가 라이브러리 메서드를 호출 >> Ioc 방식은 라이브러리에서 호출하여 사용자에게 전달 >> ①의 값을 넣을시 매번 코드를 변경해야됨 , IoC처럼 변경시 변경에 유연함 의존성 주입 DI(수동) ※ 의존성 주입 종류 : 수동 , 자동(@Autowired 6-1) 스프링 애너테이션 - @Autowired - 인스턴스 변수(iv), setter, 참조형 매개변수를 가진 생성자, 메서드에 적용 >> @Value를 생략하면, 주입할게 없다고 오류 발생 >> 생성자의 @Autowi..
-
04 Spring DI 활용하기(1) - 이론Spring/02 Spring DI와 AOP 2023. 6. 26. 22:47
Spring DI 활용하기(1) - 이론 1) 빈(bean)이란? - JavaBeans - 재사용 가능한 컴포넌트, 상태(iv), getter&setter, no-args constructor ↓ 복잡 → 간단 - Servlet & JSP bean - MVC의 Model, EL, scope, JSP container가 관리 ↓ 간단 → 대기업(복잡) - EJB (EnterPrise Java Beans) - 복잡한 규칙, EJB container가 관리 ↓ 대기업(복잡) → 심플 //로드 존슨(고수) - Spring Bean - POJO Plain Old Java object. 단순, 독립적, Spring container가 관리 2) BeanFactory와 ApplicationContext Bean - ..
-
03 Spring DI 활용하기-실습Spring/02 Spring DI와 AOP 2023. 6. 23. 23:19
pring DI 활용하기-실습 config.xml (resources → config.xml 작성 ※싱글톤: 클래스의 객체를 하나만 생성 >> scope를 생략하면 디폴트 값(scope="singleton")으로 입력 >> getBean( )할 때마다 새로운 객체가 만들어 지길 원하면 scop="prototype" SpringDiTest.java SpringDiTest.java >> ①을 주석처리 후, config.xml에서 를 사용하여 값을 입력 1) config.xml : 속성 >> value는 기본값만 알아서 class car의 타입의 String 이나 int값으로 변환시켜준다 >> Setter가 있어야 사용 가능하다 태그가 Setter를 사용 ①주석 처리 후 결과값 >> cofig.xml을 사용하..
-
02 Spring DI 흉내내기(2)Spring/02 Spring DI와 AOP 2023. 6. 22. 22:32
02 Spring DI 흉내내기(2) 4) 객체 찾기 - by Name, by Tybe main3.java 5) 객체를 자동 연결하기(1) - @Autowired (by Tybe) >> @Autowired는 Value값을 찾아서 engine 이나 door의 참조변수에 값을 넣어준다 ex) engine = 0x200 , door = 0x300 (instanceof 찾는다) >> 수동 연결 → 자동 연결 6) 객체를 자동 연결하기(2) - @Resource (by name) >> ① @Resource는 첫글자를 소문자로 바꾼걸 name으로 사용한다 ex) @Resource Engine → engine을 name으로 사용 >> ② @Resource(name="engine2") 사용자가 name을 직접 지정 >..
-
01 Spring DI 흉내내기(1)Spring/02 Spring DI와 AOP 2023. 6. 21. 22:23
Spring DI 흉내내기 1) 변경에 유리한 코드(1) - 다형성, factory method - 다형성을 통한 변경 포인트 줄이기 >> SportsCar → Truck 변경 >> 변경 포인트가 2군대 이지만 Car의 클래스로 만들면 변경 포인트가 1군대이다(다형성을 사용) ※ 다형성 : 조상타입의 참조 변수로 변경하면 변경 포인트가 하나로 줄어다 >> 단점 : 사용할 때마다 코드를 변경해야 된다 - 메서드를 통한 객체 생성(factory method) >> 변경할 메서드만 변경(변경 포인트가 더 줄어들었다 1) 변경에 유리한 코드(2) - Map과 외부 파일 >> Properties p = new Properties( ); 의 Properties는 map형태의 (String, String)으로 저장 ..