반응형

Spring 40

[FileUpload] 파일 다운로드

File Download servlet-context.xml 파일 설정 jsp 파일 작성 ${file.originFile} [다운로드] 자바 클래스에서 다운로드 메서드 작성 @GetMapping(value = "/download") public ModelAndView downloadFile(@RequestParam("sfolder") String sfolder, @RequestParam("ofile") String ofile, @RequestParam("sfile") String sfile, HttpSession session) { MemberDto memberDto = (MemberDto) session.getAttribute("userinfo"); if (memberDto != null) { Map ..

Spring 2022.04.22

[FileUpload] 파일 업로드

File Upload pom.xml 파일 설정 : 의존성 주입 commons-fileupload commons-fileupload 1.4 servlet-context.xml 파일 설정 maxUploadSize : 최대 업로드 가능한 파일의 바이트 크기 maxInMemorySize : 디스크에 임시 파일을 생성하기 전에 메모리에 보관할 수 있는 최대 바이트 크기 form 설정 제목: 내용: 파일: 글작성 초기화 form의 메서드는 반드시 post로 해줍니다. form 태그 안에 enctype="multipart/form-data" 설정을 해줍니다. 업로드 할 파일의 input 태그의 타입을 file로 설정합니다. 업로드 할 파일을 파라미터로 받아오기 위해 input 태그 안에 name을 설정합니다. 자바 ..

Spring 2022.04.22

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMelfd%2FbtrzS1wx3Bp%2FMWB7YKkS1OkFgFbI3V8LOk%2Fimg.png')"

[Spring Architecture DI] 의존성 주입(DI)

빈 생성 범위 스프링 빈은 기본적으로 싱글톤으로 만들어집니다. 따라서 컨테이너가 제공하는 모든 빈의 인스턴스는 항상 동일합니다. 컨테이너가 항상 새로운 인스턴스를 반환하게 만들고 싶을 경우, scope를 prototype으로 설정해야 합니다. @Scope(value="prototype") 범위 설명 singleton 스프링 컨테이너당 하나의 인스턴스 빈만 생성 (default) prototype 컨테이너에 빈을 요청할 때마다 새로운 인스턴스 생성 request HTTP Request별로 새로운 인스턴스 생성 session HTTP Session별로 새로운 인스턴스 생성 스프링 빈 설정 스프링 빈 설정 메타 정보의 표현 방식 1. XML 문서 -XML 문서 형태로 빈의 설정 메타 정보를 기술합니다. -단순..

Spring 2022.04.20

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOJcLE%2FbtrzUix2aEP%2FN9M95zZ0aS6fmGDRL5ckM0%2Fimg.png')"

[Spring Architecture DI] IoC

IoC 개요 DL(Dependency Lookup) : 필요한 의존성을 찾아서 넣는 것 -컨테이너가 lookup context를 통해서 필요한 Resource나 Object를 얻는 방식 -JNDI 이외의 방법을 사용한다면 JNDI 관련 코드를 오브젝트 내에서 일일히 변경해줘야 함 -Lookup 한 Object를 필요한 타입으로 Casting 해주어야 함 -Naming Exception을 처리하기 위한 로직 필요 DI(Dependency Injection) : 의존성을 알아서 주입해주는 것 -Object에 lookup 코드를 사용하지 않고 컨테이너가 직접 의존 구조를 Object에 설정할 수 있도록 지정해주는 방식 -Object가 컨테이너의 존재 여부를 알 필요가 없음 -Lookup 관련된 코드들이 Obj..

Spring 2022.04.20

[Spring Architecture DI] Container

Container -객체의 생성, 사용, 소멸에 해당하는 라이프사이클을 담당 -라이프사이클을 기본으로 애플리케이션 사용에 필요한 주요 기능 제공 Container 기능 1. 라이프사이클 관리 2. Dependency 객체 제공 3. Thread 관리 4. 기타 애플리케이션 실행에 필요한 환경 Container 필요성 -비즈니스 로직 외에 부가적인 기능들에 대해서는 독립적으로 관리되도록 하기 위함 -서비스 look up이나 Configuration에 대한 일관성을 갖기 위함 -서비스 객체를 사용하기 위해 각각 Factory 또는 Singleton 패턴을 직접 구현하지 않아도 됨 IoC Container -오브젝트의 생성과 관계 설정, 시용, 제거 등의 작업을 애플리케이션 코드 대신 독립된 컨테이너가 담당 ..

Spring 2022.04.19

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcf0cWZ%2FbtrzQozX4UB%2FhCelBNPd1ygk2or2LuckI0%2Fimg.png')"

[Spring Architecture DI] Spring Framework 구조

Spring 삼각형 Enterprise Application 개발 시에 복잡함을 해결하는 Spring의 핵심 1. POJO(Plain Old Java Object) -특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바 객체 -테스트하기 용이하며, 객체지향 설계를 자유롭게 적용할 수 있음 2. PSA(Portable Service Abstraction) -환경과 세부기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙 -트랜잭션 추상화, OXM 추상화, 데이터 액세스의 Exception 변환 기능 등 기술적 복잡함은 추상화를 통해 Low level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리 -예를 들어 데이터베이스에 관계 없이 동일하게 적용할 수 있는 트..

Spring 2022.04.19

[Spring Architecture DI] Spring 등장 배경

Controller의 역할 1. 사용자 요청이 들어오면 어떻게 처리할지 결정함 if(act=="로그인") { } else if(act=="회원가입") { } else if() .... 2. method를 이용하여 사용자가 요청한 data를 get Dto에서 데이터를 얻어와서 호출한 곳으로 보내줌 request.getParameter(...) return "path" 1번에서 2번을 호출하면 리턴을 통해 redirect 또는 forward 방식으로 응답을 전달합니다. 싱글턴 패턴 service와 dao에서는 싱글턴 패턴을 이용하여 인스턴스를 사용해왔습니다. public class Singleton { private static Singleton singleton=new Singleton(); private..

Spring 2022.04.19

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEorJA%2FbtqYAtkyOaC%2FSe1xlE3l3K0J3oyyPFIOx0%2Fimg.png')"

[Spring] 스프링 삼각형2_AOP, PSA

스프링 삼각형 -스프링 삼각형은 스프링의 3대 프로그래밍 모델(IoC/DI, AOP, PSA)을 의미합니다. -스프링을 이해하기 위해서는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형에 대한 이해가 필수입니다. 1. IoC(Inversion of Control)/DI(Dependency Injection)-제어의 역전/의존성 주입 2. AOP(Aspect-Oriented Programming)-관점 지향 프로그래밍 3. PSA(Portable Service Abstraction)-일관성 있는 서비스 추상화 AOP(Aspect-Oriented Programming)-관점 지향 프로그래밍 -스프링 DI가 의존성(new)에 대한 주입이라면 스프링 AOP는 로직(code) 주입이라고..

Spring/additional 2021.02.28

[Spring] 스프링 AOP 5대 용어

스프링 AOP 1. Aspect-관점, 측면, 양상 -@Aspect: 클래스를 AOP에서 사용하겠다는 것을 알려주는 지정자입니다. -Asepct는 여러 개의 Advice와 여러 개의 Pointcut의 결합체를 의미하는 용어입니다. Aspect = Advice들 + Pointcut들 Aspect = When + Where + What (언제, 어디에, 무엇을) 2. Pointcut-자르는 점 -Pointcut은 Aspect 적용 위치 지정자입니다. -Pointcut은 횡단 관심사를 적용할 타깃 메소드를 선택하는 지시자(메소드 선택 필터)입니다. -타겟 클래스의 타켓 메소드 지정자 //MyAspect.java @Aspect public class MyAspect { @Before("execution(* ru..

Spring/additional 2021.02.28

has-thumbnail="1" style="background-image:url('https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw4k0z%2FbtqYn44Lk9O%2FTwtdOSfW2RUusSNNCI5YsK%2Fimg.png')"

[Spring] 스프링 삼각형1_IoC/DI

스프링 삼각형 -스프링 삼각형은 스프링의 3대 프로그래밍 모델(IoC/DI, AOP, PSA)을 의미합니다. -스프링을 이해하기 위해서는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형에 대한 이해가 필수입니다. 1. IoC(Inversion of Control)/DI(Dependency Injection)-제어의 역전/의존성 주입 2. AOP(Aspect-Oriented Programming)-관점 지향 프로그래밍 3. PSA(Portable Service Abstraction)-일관성 있는 서비스 추상화 IoC/DI-제어의 역전/의존성 주입 프로그래밍에서의 의존성이란? new Car(); Car 객체 생성자에서 new Tire(); 의존성은 new이다. new를 실행하는 C..

Spring/additional 2021.02.28
반응형