Burninghering's Blog
스프링으로 DB 다루기
패캠 챌린지 2023. 3. 29. 00:54

스프링으로 DB를 다루기위해, TDD코드에 테이블에 회원 정보를 추가하는 메소드를 만들고 매개변수로 User를 주었기 때문에 User클래스를 만들어준다(테이블의 컬럼과 똑같이 만들어준다) 그리고나서 insertUser메소드를 만들어준 뒤 Test코드로 insertUserTest()코드를 만들어준다. public class DBConnectionTest2Test { @Autowired DataSource ds; @Test public void insertUserTest() throws Exception{ User user = new User("kim","1234","abc","aaa@aaa.com",new Date(),"fb",new Date()); int rowCnt=insertUser(user); as..

article thumbnail
Spring으로 DB 연결하기
패캠 챌린지 2023. 3. 28. 17:08

package com.fastcampus.ch3; import java.sql.*; public class DBConnectionTest { public static void main(String[] args) throws Exception { // 스키마의 이름(springbasic)이 다른 경우 알맞게 변경해야 함 String DB_URL = "jdbc:mysql://localhost:3306/springbasic?useUnicode=true&characterEncoding=utf8"; // DB의 userid와 pwd를 알맞게 변경해야 함 String DB_USER = "hyerin"; String DB_PASSWORD = "hyerin"; Connection conn = DriverManager...

article thumbnail
스프링 IOC와 DI
패캠 챌린지 2023. 3. 24. 00:03

Inversion of Flow Control Flow : if / for 즉, 실행 흐름이 바뀌는 것 전통적인 방식 다른 사람이 만든 라이브러리를 단순히 호출하는 것 잘 변하는 코드 부분(아랫 부분) IOC 호출을 하긴 하긴 하지만, 사용자가 제공한 코드(new SuperEngine)를 라이브러리에서 호출 잘 변하지 않는 코드 부분 (즉, 변하는 코드를 잘 변하지 않는 코드로 분리해냈다) 다른 사람이 만든 코드가 내 코드를 호출한다 (문장이 실행되는 순서를 뒤집었다) DI new SuperEngine을 Engine engin에 수동 주입 (사용할 객체를 외부에서 주입하고 있는 것) IOC 패턴에 DI가 적용되는 것이다. (전략 패턴 : 내가 원하는대로 전략을 바꿀 수 있다) library는 단순히 기능..

article thumbnail
스프링 DI 활용하기 - 이론
패캠 챌린지 2023. 3. 23. 21:36

자바빈즈부터 시작.. 자바가 서버쪽에서 각광을 받고, 화면에 안보여지는 쪽에서 Bean을 쓰게 됨 MVC에서 모델 역할을 하고(데이터 전달할 때), EL, Scope에서 쓰임.. - JSP container가 관리 EJB가 나옴 -> EJP Container가 관리 관리란? 빈을 생성하고 소멸시키는 것 Spring Bean --> EJB의 복잡한 규칙을 단순하게 만든 것, 단순/독립적 - Spring Container가 관리 스프링 컨테이너(Spring Container) 스프링에서 의존관계 주입(Dependency Injection, DI)을 이용하여 애플리케이션을 구성하는 여러 빈(Bean)들의 생명주기(Lifecycle)와 애플리케이션의 서비스 실행 등을 관리하며 생성된 인스턴스들에게 기능을 제공하..

article thumbnail
스프링 DI 활용하기 - 실습
패캠 챌린지 2023. 3. 22. 21:55

resource > xml 파일 만들어주기 config.xml SpringDiTest.java package com.fastcampus.ch3; import org.springframework.context.ApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext; class Car{} class Engine{} class Door{} public class SpringDiTest { public static void main(String[] args) { ApplicationContext ac = new GenericXmlApplicationContext("config.xml"); Car car ..

article thumbnail
스프링 DI 흉내내기 - 객체 찾는 법 (by type/by name)
패캠 챌린지 2023. 3. 22. 17:45

객체 찾기 1. 이름으로 찾기 - Map의 Key로 찾기 (객체 주소 반환) 2. 타입으로 찾기 - Map의 Value로 찾기 (객체 반환) Object getBean(String key){ return map.get(key); } //By Type 검색 Object getBean(Class clazz) { for (Object obj : map.values()) { //map의 모든 value를 가져와서 if (clazz.isInstance(obj)) //obj가 class의 객체거나 자손이면 true가 됨 return obj; } return null; } } public class Main3 { public static void main(String[] args) throws Exception { ..

article thumbnail
패스트캠퍼스 챌린지 - 30일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 21. 23:08

package com.fastcampus.ch3.diCopy3; import com.google.common.reflect.ClassPath; import org.springframework.util.StringUtils; import org.springframework.stereotype.Component; import java.awt.*; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.Set; @Component class Car{} @Component class SportsCar e..

article thumbnail
패스트캠퍼스 챌린지 - 29일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 20. 22:30

Oracle JDK version 19.0.2 선택 개선된 Main3 코드 package com.fastcampus.ch3.diCopy3; import com.google.common.reflect.ClassPath; import org.springframework.util.StringUtils; import org.springframework.stereotype.Component; import java.awt.*; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.Set; @Componen..