본문 바로가기

✨ Back-end/Spring-Legacy11

[Spring-Legacy] XML로 Interceptor 인터셉터 사용하기 interseptor.jsp 로그인 버튼을 누르면, 컨트롤러에 있는 loginInterChk로 이동할 것이다. 컨트롤러 컨트롤러로 오게되면 콘솔창에 loginInterProcess Controller 를 출력하고, 페이지 이동을 한다. 인터셉터 컨트롤러 컴포넌트의 value를 inter로 지정해주고, 이를 다른곳에서 참조하게 되면 인터셉터가 실행되는 것이다. servlet-context.xml 1. xml에서 인터셉터를 등록해주고, 2. mapping 시키는 곳에 path를 적용시킬 컨트롤러 주소, 3. bean을 인터셉터 value 값을 대입. 해당 페이지에서 LOGIN을 눌르면, 콘솔창에 preHandle, postHandle, afterCompletion 모두 나오는 걸 볼 수 있다. 인터셉터 컨트.. 2023. 9. 14.
[Spring-Legacy] Ajax 사용시 with a status of 406 () 해결법 xml로 Ajax써서 Json으로 데이터를 다시 받기까지 고난에 고난의 연속이다. 드디어 해결이 됬다. 방법은 간단하다 porm.xml HTML 삽입 미리보기할 수 없는 소스 위 코드를 넣어주었다. servlet-context.xml 위 한줄을 추가해주면 DB에 저장된 데이터들이 아래 컨트롤러를 통해 성공적으로 Ajax로 넘어간걸 볼 수 있다. 컨트롤러 Ajax에서 갖고온 데이터 조회 후 조회된 결과값 반환한다. 2023. 9. 12.
[Spring-Legacy] 파일 데이터 업로드하기 multipart/form-data jsp multipart/form-data를 사용하는 경우, 폼 데이터는 일반적인 텍스트 데이터와 함께 이진 데이터(파일 업로드)를 포함하는 멀티파트 형식으로 전송된다. 이 형식을 사용하면 서버에서 이진 파일 데이터를 정확하게 해석하고 처리할 수 있다. 뷰 jsp 저장버튼을 누르면 이벤트가 발생되도록 하기위해 id에 save를 넣어주었다. jsp jQuery구문으로 클릭시 each를 이용해 각각 값들을 출력해본다. 작성자, 제목, 비밀에 대한 길이를 모두 조회하여 0이면 특정 이벤트가 발생되도록 할 것이다. jsp 이렇게 inputText 값을 넣어주고 저장을 눌렀는데 Controller 값이 안넘어 가있다. 왜그럴까? servlet-context.xml beans에 multipartResolver를 추.. 2023. 9. 8.
[Spring-Legacy] mybatis 연결하기 프로젝트 생성 Legacy 프로젝트를 하나 만들어준다. porm.xml HTML 삽입 미리보기할 수 없는 소스 porm.xml로 들어가서 해당 코드들을 dependencies 안에 위치하도록 붙여넣어주자. 삽입한 코드는 Maven 프로젝트에서 사용되는 의존성 설정이다. 이 의존성들은 프로젝트가 특정 라이브러리와 연결되고 이용할 수 있도록 도와준다. 1.mysql-connector-java 이 의존성은 MySQL 데이터베이스와의 연결을 가능하게 하는 JDBC 드라이버를 제공한다. 2. org.mybatis:mybatis Mybatis는 SQL 매퍼 프레임워크로, 데이터베이스와 상호작용하는데 도움을 준다. 3.org.mybatis:mybatis-spring MyBatis-Spring은 MyBatis와 Spr.. 2023. 9. 3.
[Spring-Legacy] @ModelAttribute와 ModelAndView servlet-context.xml 스프링 프레임워크에서 컴포넌트 스캔을 수행하는 설정 요소이다. 이 설정을 사용하면 지정한 패키지나 패키지들을 스캔하여 관련된 컴포넌트를 자동으로 찾아 빈으로 등록할 수 있다. servlet-context.xml에 을 설정함으로써 스프링 컨테이너는 해당 패키지 아래에 있는 컴포넌트들을 검색하고 빈으로 등록한다. 여기서 주로 사용되는 속성은 base-package이다. 이 속성은 스캔할 대상 패키지를 지정한다. base-package에 지정한 패키지부터 하위 패키지까지 컴포넌트 스캔이 수행한다. 예를 들어, 라는 설정을 사용했다면 다음과 같은 동작이 이루어진다. 1. 스프링 컨테이너가 시작될 때, com.bit.controller 패키지와 그 하위 패키지를 스캔한다. 2... 2023. 8. 29.
[Spring-legacy] xml로 AOP 어드바이스(Advice) AOP의 역할들에는 다양하게 있다. 1. 어드바이스 (Advice) 2. 조인포인트 (JoinPoint) 3. 포인트 컷 (PointCut) 4. 애스펙트 (Aspect) 5. 인트로덕션 (Introduction) 6. 타깃( Target) 7. 프록시 (Proxy) 8. 위빙(Weaving) 이번에는 Advice에 대해 정리해보았다. Dao 인터페이스, OracleDao 클래스 Dao 인터페이스를 만들고, OracleDao에서 Dao를 구현하려고 한다. 인터페이스에서 정의한 메소드를 OracleDao 클래스에서 출력문을 구현해보았다. BeforeAdvice 클래스 인터페이스 BeforeAdvice를 가져오려고하는데, 만들어주지 않았음에도 이렇게 가져올 수 있다. berforeAdvicemethod( ).. 2023. 8. 25.
[Spring-Legacy] @Configuration 과 @Bean, @ComponentScan, @ImportResource 이전까지는 Xml을 만들어서 조립을 했는데, 이제는 만들지 않고 조립해보려고한다. @Configuration 과 @Bean ConfigMain ApplicationContext context 스프링 컨테이너를 나타내는 객체이다. 컨테이너는 빈을 생성하고 관리하며, 의존성 주입 등을 수행하는 역할을 한다. AnnotationConfigApplicationContext(ConfigDemo.class) ConfigDemo 클래스를 이용하여 애노테이션 기반의 스프링 컨테이너를 생성한다. ConfigDemo 클래스 내에 정의된 @Bean 메서드들을 이용하여 빈들을 생성하고 구성하게 된다. StateServer 데이터를 담아 줄 객체를 하나 생성했다. ConfigDemo @Configuration @Componen.. 2023. 8. 24.
[Spring-Legacy] @Service, @Autowired, @Qualifier 사용법 dao.xml 이 요소는 스프링 컨테이너가 어노테이션을 사용한 설정을 처리할 수 있도록 해준다. 스프링에서는 @Component, @Autowired, @Qualifier 등과 같은 어노테이션을 사용하여 빈의 생성과 의존성 주입을 설정할 수 있다. 이를 통해 어노테이션들을 스프링 컨테이너가 인식하고 적용하도록 도와준다. 이 요소는 지정된 패키지 아래에 있는 클래스들을 검색하고, 스프링의 컴포넌트 스캔 기능을 활용하여 자동으로 빈으로 등록할 수 있게 해준다. @Component, @Service, @Repository, @Controller 등과 같은 어노테이션을 가진 클래스들을 자동으로 스캔하여 빈으로 등록할 수 있다. DaoMain 'src/main/java/com/bit/di/basic4/dao.xm.. 2023. 8. 24.
[Spring-Legacy] properties를 이용해 데이터 출력하기 dbms.xml xml에 위 두개를 추가해주었다. DbmsSystem @Component를 이용해 객체를 만들었고, @Value를 통해 값을 직접 넣어주었다. @PostConstruct 메서드에 부착되는것으로, 빈이 생성되고 의존성 주입이 이루어진 후 호출된다. 주로 초기화 작업을 수행하는데 사용. 빈이 생성된 직후 호출되므로 해당 메서드에서 초기화 로직을 구현할 수 있다. @PreDestroy 메서드에 부착되고, 빈이 소멸되기 전에 호출된다. 주로 빈이 소멸되기 전에 정리작업을 수행하는데 사용된다. SystemMain 이후 main 메소드에서 출력해보면, @value에 직접 데이터를 넣은 값들이 조회되는 것을 확인해볼 수 있다. initDbms가 맨 위에 호출된 이유는 @PostConstruct 때문이.. 2023. 8. 23.
[Spring-Legacy] XML과 @Annotation을 이용해 데이터 출력하기 HTML 삽입 미리보기할 수 없는 소스 Book 이후, 객체에서 initBook() 메소드와 destroy() 메소드를 만들어 주었다. book.xml init-method : 빈이 초기화 될 때 호출될 메서드의 이름을 지정한다. 여기서 initBook 메서드가 초기화될 때 호출된다. destroy-method : 빈이 소멸될 때 호출될 메서드의 이름을 지정한다. 여기서 destroy 메서드가 빈이 소멸될 때 호출. BookMain ApplicationContext: ApplicationContext는 Spring의 IoC (Inversion of Control) 컨테이너를 나타내는 인터페이스이다. IoC 컨테이너는 빈의 생명주기를 관리하고 의존성 주입을 통해 객체를 생성하고 관리한다. 애플리케이션 컴포.. 2023. 8. 23.
[Spring-Legacy] 스프링 레거시 XML에서 빈(Bean) 정의해보기 스프링 레거시란? XML- based configuration 스프링 초기 버전에서 주로 XML 파일을 사용해 애플리케이션의 구성과 설정을 정의했다. 스프링 레거시 방식에서는 주로 ~~.xml과 같은 이름의 XML 파일을 생성하고, 이 파일 내에서 빈(Bean)정의, 의존성 주입(Dependency Injection), AOP 설정, 데이터소스 설정 등을 작성한다. Person 객체 Spring-legacy에서 Person이라는 객체를 만들어 생성자와 기본생성자, setter, getter를 만들어주었다. person.xml : 빈을 정의하는 태그이다. id : 빈의 고유한 식별자를 지정한다. 이 ID를 통해 빈을 참조할 수 있다. class : 생성할 빈의 클래스 경로를 지정한다. scope : 빈의 .. 2023. 8. 22.