기록/BACKEND32 [Spring] DI 주입하기 - java 객체 필요한 곳에서 부르기 1. context 설정(객체 정보를 알 수 있는 class) - .xml 파일 대신 설정이 담긴 java class를 넘긴다. 2. 사용할 객체 가져오기(xml과 동일) - context에서 Bean을 가져온다. - 이름만 설정 : 해당 이름의 객체를 가져온다. 이름이 없다면 해당하는 class를 알아서 가져온다. - 클래스만 설정 : 해당 class타입으로 자동 형 변환해서 가져온다. 클래스 설정하지 않으면 Object 타입으로 반환한다. ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); GuestBookService guestBookService = con.. 기록/BACKEND 2022. 4. 16. [Spring] DI 주입하기 - xml 방법 두 가지가 있는데, context.xml과 java class에서 하나씩 짝지어 생각하면 된다. 객체 필요한 곳에서 부르기 1. context 설정(객체 정보를 알 수 있는 xml파일) - new ClassPathXmlApplicationContext()에 xml 파일 주소를 넘긴다. 2. 사용할 객체 가져오기 - context에서 Bean을 가져온다. - 이름만 설정 : 해당 이름의 객체를 가져온다. 이름이 없다면 해당하는 class를 알아서 가져온다. - 클래스만 설정 : 해당 class타입으로 자동 형 변환해서 가져온다. 클래스 설정하지 않으면 Object 타입으로 반환한다. ApplicationContext context = new ClassPathXmlApplicationContext("c.. 기록/BACKEND 2022. 4. 15. [WEB] 파라미터와 어트리뷰트 파라미터와 어트리뷰트가 헷갈렸는데 나같은 사람들이 많을 것 같아 정리해보았다. 파라미터 client에서 서버로 보내는 정보들이다. web.xml을 통해서도 생성할 수 있다. 모두 String이다. 서블릿관점에서, READ-ONLY다. 어트리뷰트 서블릿에서 다양한 scope에 연결되어 수정, 생성, 삭제될 수 있다. 개체가 이름과 함께 scope에 추가되는 것을 바인딩되었다고 한다. 객체타입이다. -> 따라서 보내고 싶은 객체는 모두 Serializable 인터페이스를 상속받아야 한다. 참고 사이트 : https://www.javajee.com/parameters-and-attributes-in-servlet 기록/BACKEND 2022. 4. 4. [WEB] 요청과 응답의 Scope ApplicationScope (또는 ContextScope) javax.servlet.ServletContext 인터페이스 웹 어플리케이션이 시작할 때부터 끝날때(종료, 변경)까지 한 개의 객체로 유지된다. 모든 서블릿과 jsp에서 사용가능하다. jsp : application 객체로 사용 가능 servlet : getServletContext() 또는 getServletConfig().getServletContext() SessionScope javax.servlet.http.HttpSession 인터페이스 client(e.g. 브라우저 윈도우)가 웹 어플리케이션과 연결을 시작할 때부터 브라우저가 닫힐때까지 유지된다. 타임아웃 시간이 설정되면 닫히지 않아도 시간이 지나면 자동으로 삭제된다. 한 웹사이.. 기록/BACKEND 2022. 4. 4. [WEB] Java에서 DB연결하기 두 경우 모두 FactoryDao를 사용한다고 가정한다. FactoryDao는 싱글톤 패턴을 적용했다. 따라서 getInstance, getConnection, close 함수가 존재한다. 필요할 때마다 DB Connection 생성해서 사용하기 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class FactoryDao { private final String driverName = "com.mysql.cj.jdbc.Driver"; private final String url = "jdbc:mysql://127.0.0.1:3306/스키마이름?serverTimezone=UTC"; .. 기록/BACKEND 2022. 4. 2. [WEB] Servlet Servlet Life Cycle 이 메소드들은 재정의해서 사용할 수 있지만 service 메서드는 재정의시 주의가 필요하다. 밑의 그림과 같은 순서로 호출되도록 만들어졌기 때문에 재정의할 때 다음 메서드 호출을 생략한다면 예상한대로 진행되지 않을 수 있다. doGet, doPost 중 하나만 만든 상태에서 없는 메소드 방식으로 접근하면 405 Error(허용되지 않는 메소드 에러)가 발생한다. init() : 서블릿 객체 생성 후 초기화될 때 한 번 호출된다. service : 요청될 때마다 호출된다. service(ServletRequest req, ServletResponse res) service(HttpServletRequest req, HttpServletResponse res) doGet(H.. 기록/BACKEND 2022. 3. 29. [WEB] MVC Pattern 흐름 내가 이해한 방식대로 그려보았다. Model 서비스 로직(업무 로직) Class DAO : DB Access Class DTO : Data Transfer Object Class Service와 Dao 차이 Dao : DB와 연결해 DB 데이터를 필요한 것만 가져옴. Service : Dao에서 가져온 데이터를 가공. View 화면(view) : GUI, CLI html(static contents), css, javascript(jquery, bootstrap), ajax JSP(Java Server Page : static + dynamic contents) Controller 사용자의 요청을 받아서 응답을 제어하는 역할 하는 일 요청 데이터 가져오기 요청 데이터 valid 검증 Model에게 .. 기록/BACKEND 2022. 3. 29. [WEB] DTO Pattern DTO Pattern db table 컬럼명과 class 멤버변수를 매핑한다. DB member_id --> DTO memberId 방식으로 하는 게 알아보기 편하다. JavaBean Component 규칙을 준수해야 한다. 1. private 멤버변수 2. public setter()/getter() 3. 기본생성자 4. package 직렬화가 필요하기 때문에 Serializable를 상속받는다. 필요시 추가할 메서드 - 생성자 중복정의 - toString() - equals/hashCode() DTO 생성자 중복정의 기본생성자 : 필수 모든 데이터 초기화 생성자 예시) 회원가입 초기화 생성자 -> memberId, memberPw, memberName, mobile, email.. 기록/BACKEND 2022. 3. 28. 이전 1 2 3 다음