[Spring] Spring 환경설정 및 설치

Posted by 신희준 on September 28, 2017


2017 - 09 - 28(목)

  • Spring 환경 설정 및 설치
  • DI(Dependency injection)

  • 기본사항 정리


    1 . 스프링 환경 설정 및 설치


    JDK 1.8 스프링 ver 4.0.7
    1 . http://spring.io/tools/sts 에서 sts-bundle 설치

    2 . STS.ex 실행 하고

    3 . servers 에서 서버를 지정하고(apachi-tomcat 8.5) 저장경로 지정

    4 . Spring lagacy project 생성

    5 . build path에서 Library에 Edit 하여 workspace default jre 로 지정

    6 . maven이 pom 파일을 관리해서 xml에 다운 받아준다. maven을 업데이트한다.(변경사항 적용할 때 지속적으로 해준다. ) 주의- 이 때 다시 build path를 확인하자.. 자바버전이 바뀌어질 수 있다.

    7 . 아래 코드를 pom.xml 에 붙여준다.

     <build>
      <plugins>
       <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
         <source>${java.version}</source>
         <target>${java.version}</target>
        </configuration>
       </plugin>
      </plugins>
     </build>
    


    8 . https://mvnrepository.com/artifact/javax.servlet/jstl/1.2 메이븐 페이지에서 Spring aop / aspectj weaver 를 검색하여 dependency를 카피해서 pom.xml에 넣어준다.(버전 맞춰준다.)

    9 . maven 업데이트하면 Spring 시작 완료.



    2 . DI



    최대한 결합도를 줄여주는 것이다. 결합도를 낮추고자 하는 이유는 유지보수의 편리함을 위해서가 가장 큰 이유다.
    1 .. class의 객체를 매개변수로 활용한다. (강결합)

    2 .. factory method pattern으로 결합도를 낮추어 준다 interface 로 구현. 1번보다 결합도가 낮다

    3 .. Spring으로 전환
    Post Sample Image
    이름이 board라는 객체를 생성한다 // part4 패키지의 BoardCafe 객체를 생성한다.
    ApplicationContext ac = new GenericXmlApplicationContext("xml파일이름")으로 ac객체를 에 xml문서를 읽어 저장한다. ac객체의 getBean() 메서드를 활용하여 bean에서 생성한 객체를 가져올 수 있다.

    4 .. @Autowired 활용 Post Sample Image
    @Autowired를 사용하면 자동으로 생성자를 만들어주며 메소드 위에 사용할 경우 기본 생성자를 만듬과 동시에 그 메소드를 주입시켜준다.

    @Autowired를 필드명위에 해줄 수도 있다. 이 경우 Write형태의 객체를 자동으로 설정해주게 된다. set 메서드가 필요없어지게 되는 것이다.

    5 .. @Qualifier 활용

    Autowired를 쓰다보면 type으로 매칭시켜주기 때문에 같은타입이 여러개일 경우 모호함이 발생한다. 이러한 불편함을 줄여주기위해 @Qualifier를 사용한다. Post Sample Image

    6 .. @Resource 활용

    앞선 @Autowired / @Qualifier를 합친 형태이다. 이 두개를 지우고 @Resource(name = "qnaWrite") 로 바꾸어 보면 이 두개의 기능을 한번에 사용할 수 있다.

    7 .. ComponentScan 활용

    xml 파일을 가볍게 하기위해 ComponentScan을 활용한다.

    자동으로 bean을 검색한다. @Component("객체명") / @Resource 를 활용하여 board에 qnaWrite가 들어갈지 freeWrite가 들어갈지 정해준다.

    Post Sample Image



    8 .. PostConstruct (전처리기) 활용

    @PostConstruct를 사용하면 간단히 초기화 작업을 수행할 수 있다.

    Post Sample Image