language (40) 썸네일형 리스트형 [Java/Spring] Spring project에 Spring JDBC 설정하기 1 기존의 JDBC 코드들은 드라이버 로딩, 커넥션 연결, SQL문 전송, 결과 받기 등 일련의 반복된 과정을 수행하도록 구성되어 있습니다. 이런 코드들을 대신해서 처리해주고 관리해주는 것이 바로 Spring JDBC입니다. JdbcTemplate 클래스 JdbcTemplate은 GoF 디자인 패턴 중 템플릿 메서드 패턴이 적용된 클래스 입니다. 템플릿 메서드 패턴은 복잡하고 반복되는 알고리즘을 캡슐화해서 재사용하는 패턴으로 정의할 수 있습니다. (JDBC 코딩처럼 순서가 정형화된 기술에서 유용하게 사용 가능 합니다.) Spring JDBC 설정 1. 라이브러리 추가 Spring JDBC와 DBCP API 의존성 추가 : mvnrepository.com 에서 spring-jdbc, commons-dbcp2 .. [Java/Spring] JoinPoint와 바인드 변수 JoinPoint 인터페이스 : 횡단관심에 해당하는 어드바이스 메서드를 의미 있게 구현하기 위해 클라이언트가 호출한 비즈니스 메서드의 정보가 필요하기 때문에 사용 JoinPoint 메서드 메서드 설명 Signature getSignature() 클라이언트가 호출한 메서드의 시그니처(리턴타입, 이름, 매개변수) 정보가 저장된 Signature 객체를 리턴 Object getTarget() 클라이언트가 호출한 비즈니스 메서드를 포함하는 비즈니스 객체 리턴 Object getArgs() 클라이언트가 메서드를 호출할 때 넘겨준 인자 목록을 Object 배열로 리턴 - Before, After Returning, After Throwing, After 어드바이스는 JoinPoint를 사용하고 Around 에서만 .. [Java/Spring] AOP Pointcut 표현식 XML 스키마 혹은 @Aspect 어노테이션을 이용해서 Aspect를 설정할 때 AspectJ 문법을 이용해서 Pointcut을 설정합니다. - 다양한 Pointcut 명시자를 제공하지만 스프링에서는 메서드 호출과 관련된 명시자만 지원하고 있습니다. Pointcut 표현식 종류 execution 명시자 within 명시자 bean 명시자 Pointcut의 조합 execution 명시자 execution 명시자는 Advice를 적용할 메서드를 명시할 때 사용합니다. 기본 형식 execution(리턴타입패턴 패키지경로패턴.클래스이름패턴.메서드이름패턴(파라미터패턴)) 각 패턴은 "*"을 이용하여 모든 값을 표현할 수 있습니다. "."을 이용해서 0개 이상이라는 의미를 표현할 수 있습니다. 클래스이름 뒤에 +를.. [Java/Spring] 빈 객체 라이프 사이클 빈 객체 라이프 사이클 스프링 컨테이너에 저장되는 빈 객체는 최소한 생성, 초기화, 소멸의 라이프 사이클을 갖습니다. BeanFactory에서 빈 라이프 사이클 BeanNameAware.setBeanName() BeanFactoryAware.setBeanFactory() BeanPostProcessor의 초기화 전처리 커스텀 init-method InitializingBean.afterPropertiesSet() BeanPostProcessor의 초기화 후처리 빈 객체 얻고 사용 DisposableBean.destroy() 커스텀 destroy-method BeanFactory 라이프 사이클 예제 - 인터페이스 작성 : MyLifeBean.java package zinc.spring.lifecycle; .. [Java/Spring] Spring AOP 개념 AOP(Aspect-Oriented Programming) = '관점 지향 프로그래밍' 객체지향에서 특정 비즈니스 로직에 걸림돌이 되는 공통 로직을 제거할 수 있는 방법을 제공합니다. AOP는 관심사의 분리(separate concerns)를 추구합니다. 관점(Aspect)란? 관점이라는 용어는 관심사(concern)로 생각하면 되고, 관심사는 개발 시 필요한 고민을 말합니다. 파라미터가 올바르게 들어왔는지 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인지.. '핵심 로직'은 아니지만 코드를 온전하게 만들기 위해 필요한 고민입니다. 전통적인 방식에는 이러한 고민에 의해 코드들이 반복적으로 적용되는데, AOP는 개발자가 염두에 두어야하는 일들은 별도의 '관심사'로 분리하고 핵심 비즈니스 로직만을 작성.. [Spring/Maven] Spring 프로젝트에 오라클 드라이버 적용시키기 (Eclipse) 오라클 드라이버는 라이센스 문제로 인해 mvnrerpository에서 다운로드 되지 않습니다. 따라서 다음의 과정대로 진행해줘야 합니다. 1. 오라클 홈페이지에서 ojdbc8.jar 다운로드 2. 메이븐 인스톨러를 이용해서 메이븐 레포지토리에 설치 3. pom.xml에 dependency를 설정한다. Maven 다운로드 https://www.apache.org/ Welcome to The Apache Software Foundation! Official ASF reports and statements, including Quarterly and Annual Reports, Vision Statement, "Apache is Open", 5-Year Strategic Plan, and more. www.a.. [Java/Spring] Spring Project 생성 Eclipse 2021-03 버전에 Spring 설치해둔 상태 Spring jar 파일을 다운받아둔 상태 new Project에서 Spring Legacy Project를 클릭해주고 next project name 지정해준 다음에 Spring MVC Project 클릭 위 사진은 처음 Spring Legacy Project 생성할 때 화면인데 위와 같은 창이 나오면 yes 눌러서 받아주면 됩니다. 저는 zinc.spring.web 이렇게 생성해줬는데 web 부분이 context path로 생각해주면 됩니다. 이 다음에 위와 같이 설정해주고 체크된 부분을 맞춰준다음에 적용 눌러주면 됩니다! * 이 다음은 제가 듣는 수업에 맞춰서 설정한 부분이라서 개인차가 있을 수 있습니다.* src/main/java ->.. [intellj/JSP] JSP 프로젝트에서 oracle database 연동 오류 문제 해결 (ClassNotFoundException) 이클립스에서는 문제 없이 데이터베이스 연동이 해결됐었는데 인텔리제이로 똑같은 프로젝트를 구동했을 때 jsp파일을 로드하기만하면 oracle.jdbc.driver.OracleDriver class를 찾을 수 없다는 오류가 떴습니다.ㅜ 자바 코드로는 정상적으로 로딩이 되었고 문제는 jsp파일이었는데 그렇다면 톰캣에 오류가 생긴거라고 생각하면 됩니다. 해결방안 : java 폴더 내부의 jdk안의 jre와 그냥 jre 두 쪽 모두에게 ojdbc8.jar파일을 넣어주니까 해결됐는데, 모두 jre로 들어가서 lib폴더 내부의 ext 폴더 안쪽에다가 jar파일을 넣어줬습니다. 경로 C:\Program Files\Java\jdk1.8.0_311\jre\lib\ext C:\Program Files\Java\jre1.8... 이전 1 2 3 4 5 다음 목록 더보기