Spring Framework(1)

으누·2024년 10월 21일

스프링(Spring Framework) 이란?

지속 플랫폼으 지원하는 오픈소스 전용 프레임워크입니다!- 프레임워크는 작업의 구조가 정해져 있는 라이브러리 입니다

  • 앱, 서버들의 구동, 메모리 관리등의 공통 부분은 프레임워크가 관리하며,
    개발자는 서비스별로 다른 부분만 프레임워크가 정해준 방식대로 클래스, 메서드 등을 구현합니다.

Spring Framework 특징 :

  1. 제어반전( IoC : Inversion of Control )
  • 객체의 생명주기와 의존성 관리를 프레임워크가 담당
  1. 의존성 주입 ( DI : Dependency Injection )
  • 상호 연결이 필요한 객체들을 스프링 설정에서 연결, 주입하도록 설정
  1. 관점 지향 프로그래밍( AOP : Aspect Oriented Programming )
  • 비즈니스 로직과 공통기능을 분리하여 모듈화
  1. POJO( Plan Old Java Object )
  • 특별한 제한이나 요구사항 없이 간단하게 정의된 자바 객체입니다.
    자바 객체의 라이프사이클을 스프링 컨테이너가 직접 관리하며,
    스프링 컨테이너로부터 필요한 객체들을 얻어 올 수 있습니다.

스프링은 sts.3.9.17 버전을 사용했습니다


1. pom.xml 설정 이 중요합니다


여러사람들과 프로젝트를 완성할때 같은 pom.xml을 사용합니다

2. 다른 기본 설정으로는 severs 는 톰캣9으로 설정 jdk11.0.4버젼 사용

3. 프로젝트 생성 (Spring Legacy project) -> MVC project 파일 생성 하기 name을 지을때는 ?.?.? 닷을 2개 붙어여야함

BasicStart 클래스를 만드고 다른 메서드를 불러온다

public class BasicStart {

public static void main(String[] args) {

	MessageBeanKr beanA = new MessageBeanKr();
    beanA.sayHello();
    
    MessageBeanEn beanB = new MessageBeanEn();
    beanB.sayHello();
    }
  }

MessageBeanEn Class
sayHello 메서드 정의함

public class MessageBeanEn{

	public void sayHello(){
    	System.out.println("Spring start~);
        }
      }
        

MessageBeanKr Class
sayHello 메서드 정의함

public class MessageBeankr {

	public void sayHello() {
		System.out.println("스프링 스타트~");

	}
}

## interface 사용 ( 인터페이스는 다른 패키지에서도 접근 가능하며, 공유할 수 있습니다)
public interface MessageBean {
	
	public void sayHello();

}

출력메소드

public class PolyMain {

	public static void main(String[] arg) {
    
    	MessageBean bean =null;
        
        bean = new MessageBeankr();
        bean.sayHello();
        
        bean = new MessageBeanEn();
        bean.sayHello();

Factory 패턴

  • 객체를 생성하는 디자인 패턴 중 하나입니다
    객체 생성을 클라이언트로 부터 분리 시켜서 객체 생성을 처리하는 팩토리 객체를 이용하여 객체를 생성합니다
public class BeanFactory {

public MessageBean getBean(String beanName) {
	if(beanName.equal("kr")) {
	return new MessageBeanKr();
    }else if(beanName.equals("en")){
    return new MessageBeanEn();
    }
    return null;

인터페이스 설정

public interface MessageBean {
	
	public void sayHello();

}

MessageBeanEn (override)

public class MessageBeanEn implements MessageBean {

	@Override
	public void sayHello() {
		System.out.println("Spring start~");
	}
}

MessageBeanKr (override)

public class MessageBeanKr implements MessageBean {

	@Override
	public void sayHello() {
		System.out.println("스프링 시작~");
	}
}

Main 출력

public clas FactoryMain {

	public static void main(String[] args){
    
    BeanFactory factory = new BeanFactory();
    
    MessageBean bean = null;
    
    bean = factory.getBean('kr");
    bean.sayHello();
    
     bean = factory.getBean('en");
    bean.sayHello();
    
    }
    }
    

.XML 파일이란? (bean) 비슷함

Spring 구성 파일로 사용됩니다 애플리케이션의 컨텍스트를 구성하고, 빈(bean)을 정의하고,
빈 간의 의존성을 설정합니다 # bean 설정 - xml 파일 생성 : new -> Spring Bean Configration File

  • bean.xml 파일에서 정의된 각 bean 을 인스터스화 하고 구성하며, 해당 bean 을 애플리케이션에서 사용할 수 있습니다
<bean id="messageBeankr" class="com.combi.ex04.MessageBeanEn"></bean>

XML Main 출력

public class XMLmain {

	public static void Main(String[]args) {
	
    GenericXmlApplicationComtext context =
    	new GenericXmlAppicationContext("com/combi/ex04/bean.xml");
        
    MessageBean bean = (MessageBean)context.getBean("messageBeanKr");
    bean.sayHello();
    }
    }

설명

GenericXmlApplicationContext를 사용하여 XML 설정 파일을 로드하고, Spring 컨테이너에서 MessageBean`을 수행하는 메서드를 호출하는 구조입니다

GenericXmlApplicationContext

GenericXmlApplicationContext는 스프링 프레임워크에서 제공하는 **애플리케이션 컨텍스트(ApplicationContext)** 중 하나, **XML 파일**을 통해 스프링 빈(bean)을 설정하고 관리하는 기능을 제공합니다. ### GenericXmlApplicationContext의 역할과 특징: 1. **XML 설정 파일 기반**: - GenericXmlApplicationContext`는 봄에만 XML 파일을 사용하여 빈(bean)을 정의하고, 로드하는 역할을 합니다

profile
코딩 일기장

0개의 댓글