본문 바로가기
반응형

개발132

[spring 에러] slf4j failed to load class org.slf4j.impl.staticloggerbinder Maven 프로젝트에서 pom.xml 파일에 slf4j를 추가하고 로그 출력 시 아래와 같은 오류가 표시되고 로그가 찍히지 않을 경우.. slf4j failed to load class org.slf4j.impl.staticloggerbinder pom.xml 파일에 slf4j-simple도 추가 해주어야 함. ex) org.slf4j slf4j-api 1.7.30 org.slf4j slf4j-simple 1.7.30 2021. 1. 17.
[spring 에러] 일치하는 와일드 카드 문자가 엄격하게 적용되지만 ... 요소에 대한 선언을 찾을 수 없습니다. 와 같은 내용이 있을때 xmls 항목을 추가하면 xsi:schemaLocation의 내용도 추가해야 한다. 즉 위와 같이 xmlns="http://www.springframework.org/schema/security" 항목을 추가하면 http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd" 도 xsi:schemaLocation에 추가해 주어야 한다. 2021. 1. 17.
[spring] Environment - 프로필(profile) XML설정에서 프로필 사용 태그에 profile 속성을 사용 GenericXmlApplicationContext context = new GenericXmlApplicationContext(); context.getEnvironment().setActiveProfiles("dev"); // 2개이상일 경우 context.getEnvironment().setActiveProfiles("dev", "mysql"); context.load("classpath:/dataSource-dev.xml", "classpath:/dataSource-prod.xml"); context.refresh(); java -Dspring.profiles.active=prod,oracle 자바 @Configuration 설정에서 프.. 2021. 1. 17.
[spring] Environment - PropertySource 프로퍼티를 사용하는 이유 실제 업무에서 개발을 할 경우 로컬 환경, 개발 환경, 운영 환경에 따라 DB 연결, 파일 경로 등의 값이 바뀌는데 스프링에서 제공하는 프로퍼티와 프로파일을 이용하여 소스의 변경 없이 편하게 관리 할 수 있다. 프로퍼티를 읽어 오는 과정 ConfigurableEnvironment -> MutablePropertySources -> PropertySource(시스템 프로퍼티, 환경변수, 자바 Properties, JNDI) Environment가 제공하는 주요 메서드 boolean containsProperty(String key) : 지정한 key에 해당하는 프로퍼티가 존재하는지 확인 String getProperty(String key) : 지정한 key에 해당하는 프로퍼티값 .. 2021. 1. 17.
[spring] 스프링 코어 - AOP (Aspect Oriented Programming) 스프링 코어 - AOP (Aspect Oriented Programming) AOP 가 필요한 이유 일정규모 이상의 프로젝트 진행 시 소스코드 양이 많아지며, 업무 로직과 상관없는 로깅이나 캐시 같은 처리 내용이 소스코드 여기저기에 존재하게 된다. 또한 공통으로 처리해야 하는 업무도 존재한다. (보안, 로깅, 트랜잭션관리, 모니터링, 캐시 처리, 예외 처리) 스프링 AOP를 사용하면 소스코드에서 공통적인 기능을 효율적으로 분리하고 원하는 시점에 실행하도록 할 수 있다. AOP 개념 용어 용어 설명 애스펙트 (Aspect) AOP의 단위를 애스펙트라고 부름. 예를 들어 공통처리 업무 내용 중 "로그 출력", "모니터링" 조인포인트 (Join Point) AOP가 실행될 지점이나 시점. 메소드 단위로 조인 .. 2021. 1. 17.
[spring] 스프링 코어 - DI (Dependency Injection) 스프링 코어 - DI (Dependency Injection) DI 가 필요한 이유 일정 규모 이상의 프로젝트 개발 시 다양한 컴포넌트를 조합하여 개발하는 것이 일반적이다. 예를 들면 공통 기능을 모아놓은 '공통 컴포넌트', 데이터 베이스에 접근하는 '데이터베이스 컴포넌트', 외부 시스템(레거시 시스템)에 접근하기 위한 '레거시 컴포넌트' 등 이 있을 수 있다. 또한 잘 만들어진 오픈소스 라이브러리를 조합하여 많이 사용하고 있다. 컴포넌트간 연결 방법 및 DI 컨테이너를 이용한 방법 더보기 컴포넌트간 연결은 여러 방법이 있다. 가장 전통적인 방법은 직접 클래스에 선언 후 인스턴스를 생성하는 것이다. 위 처럼 생성하여 사용할 경우 클래스간 결합도가 높아진다. 만약 인스턴스 B의 클래스가 변경되면 호출되는 .. 2021. 1. 17.
반응형