KDT/TIL

2022-10-17 (월)

imname1am 2022. 10. 23. 23:58
반응형

목차


    스프링

    → Legacy (4)

    boot (6) : 요즘 나온 기술

     

     

    ▶ 기본 세팅 

    Window -> Preferences -> General -> Appearance ->

    Window -> Preferences -> General -> Appearance  -> Web Browswer -> Chrome

     

    1. Spring 

    p.3

    - EJB : Enterprise Java Bean

    - OSS : Open Source

     

     p.5

    IOC (Inversion Of Control) 안에 DI

     

    1) Setter를 통한 주입 방식

    [File] - [New] - [Maven Project]

    och01_di01

    > sam01

    기존 JSP 방식


    > sam02

    MessageBean.java : 인터페이스

    MessageBeanEn.java, MessageBeanKo.java : MessageBean을 상속받아서 하게


    > sam03


    패키지랑 맞게 선택

     

    2) Constructor : 생성자 방식 통한 주입

    EX03.java - getBean : bean 이름 작성, DI 호출 객체

    // DI 호출 객체
    ApplicationContext ac = new ClassPathXmlApplicationContext("bean03.xml");    // xml 파일명 작성
    MessageBean mb = (MessageBean) ac.getBean("mb3");    // bean id명 작성

     context : 환경과 프로그램 사이 주고 받는. (협의의 관점)

    ❥ classpath : resource

     DI (Dependency Injection): 문서를 갖고. 외부에서 의존성 주입

     

     


    > sam05


    ✔ MessageBean.java & MessageBeanImpl.java

     

    ✔ EX05.java & bean05.xml

    [src/main/resources] - [New] - [Spring Bean Configuration File]

    bea05.xml 만들 때 (beans도 찍어주기!)
    여기서는 setter 방식

    ❥ 생성자 방식   ➝ constructor
    ❥ setter  방식   ➝ property

    > sam06

    ✔ vehicle.java & VehicleImpl.java

    vehicle implement하기

    ✔ Ex06.java & bean06.xml


    > sam07 (여기서부터!)

    call by reference


    ✔ MessageBean.java & Outputter.java

     MessageBean.java & Outputter.java : 인터페이스 

     

    ✔ HelloApp.java & FileOutputter.java & bean07.xml

    절대 경로 설정

    HelloApp.java : mb7

     FileOutputter.java : Outputter.java Implement 하기

    bean07.xml : Outputter 객체 call by reference <ref bean=" "> </ref>

    🌟🌟 DI에서 객체를 선언해 줄 때, 주소를 넘겨줘야 하므로 레퍼런스로 선언해줘야함

     

     MessageBeanImpl.java

    ➡ Outputter - 객체 선언 시 reference로 선언 (call by reference)

    ➡ Outputter.output 메소드

    ➡ sayHello() : 인자 3개 (name, greet, outputter)

     


    och03_di03

    > DI01


    ✔ Calculator.java & MyCalCulator.java

    ✔ MainClass01.java

    String configLocation = "classpath:applicationCTX01.xml";
    AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
    MyCalculator myCalculator = ctx.getBean("myCalulator", MyCalculator.class);

    ➞ xml DI 관련 객체. 이 2개만 알고 있으면 된다

    (AbstractXmlApplicationContext & ClassPathXmlApplicationContext)


    ✔ applicationCTX01.xml

    bean 설정 (Calculator.java & MyCalculator .java )

     

     


    ➤ classic.ver

    같아야 한다고...


    > DI02

     


    ✔ BMICalculator.java & MyInfo.java

     

    ✔ MainClass02.java

    ✔ applicationCTX02.xml

    1) ArrayLIst로 값을 세팅할 때

    <property name = "hobbies">
    	<list>
    		<value>바둑</value>
    		<value>낚시</value>
    		<value>대화</value>
    	</list>
    </property>

    2) 객체 참조해서 넣는 방법

    <property name="bmiCalculator">
    	<ref bean="bmiCalculator"/>
    </property>


     

    [Spring] DI, IoC 정리

    DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.DI(의존성 주입)

    velog.io

    ORM = DB

    반응형