Dev log - 65, Java Spring #1

박강산·2022년 7월 20일
0

Java

  • asm <-- core <-- beans
    ㅤㅤㅤㅤㅤㅤ <-- expression <-- context <-- transaction

스프링(Spring) 프레임워크

  • Expert One on J2EE Development without EJB, Rod Johnson

  • EJB를 사용하지 않고, 엔터프라이즈 애플리케이션 개발 방법 소개

  • 스프링은 엔터프라이즈 애플리케이션에서 필요로 하는 기능을 제공하는 프레임워크

  • DI, AOP, 트랜잭션, 시큐리티 등의 기능을 제공

특징

  • 상대적으로(EJB) 가벼운 JavaEE 컨테이너, 기존 JavaEE 기능 다수를 제공

  • POJO 기반으로 작성, 테스트 및 배포가 쉬움

  • 다른 프레임워크와의 연동 지원

  • 설정 파일 변경만으로도 소스 수정 없이 클래스 사이의 새로운 의존 관계 설정

기초 설정

  1. git bash 로 (git clone https://github.com/junkiebyte/Spring-MVC-Project.git jvx330) 프로젝트 다운

  2. lombok (https://projectlombok.org/download) 다운로드 후, 이클립스 폴더에 붙여넣기

  3. 프롬프트에서 cd 명령어로 이클립스 경로 이동 (ex. cd C:\NCS_Kangsan\eclipse)

  4. java -jar lombok.jar 입력

  5. Speify location 버튼으로 eclipse.exe 파일로 선택 후 Install/Update 버튼 클릭

  6. 이클립스 마켓플레이스에서 Spring Tools 3 다운 (4는 스프링 부트)

5-2. 오류 발생 시 해당 jar 삭제 후 재설치 해주고, 종속성 오류 뜨면 여기(https://code0xff.tistory.com/131) 참고

  1. 속성에서 명칭 jvx330으로 변경

새로운 Spring 프로젝트 생성

  1. New Project 에서 Spring Legacy Project 선택, 프로젝트 이름과 Simple Java 선택 후 Next 두번

  2. Working sets를 프로젝트명/classes 로 변경 후 Finish 후 새 창은 Don't Create

실습

  • Hello.java
public interface Hello {
	String sayHello(String name);
}
  • HelloBeanEn.java
public class HelloBeanEn implements Hello {

	@Override
	public String sayHello(String name) {
		return "Hello " + name;
	}

}
  • HelloBeanKo.java
public class HelloBeanKo implements Hello {

	@Override
	public String sayHello(String name) {
		return "안녕하세요. " + name;
	}

}
  • Spring Bean 생성, 이름 설정 후 XSD는 beans 선택

  • beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean name="helloBean" class="com.varxyz.jvx330.intro.HelloBeanKo" />
</beans>
  • AppMain.java
public class AppMain {
	public static void main(String[] args) {
		String config = "com/varxyz/jvx330/intro/beans.xml"; // beans 경로
        
		GenericApplicationContext context = new GenericXmlApplicationContext(config);
        -> // beans.xml를 불러오는 컨테이너 생성
       
		Hello hello = context.getBean("helloBean", Hello.class); // 타입이 Hello 이기 때문에 적어줌
//		Hello hello = (Hello) context.getBean("helloBean"); 위와 같음

		System.out.println(hello.sayHello("Spring"));
		context.close();
	}
}

profile
안녕하세요. 맡은 업무를 확실하게 수행하는 웹 개발자가 되기 위하여 끊임없이 학습에 정진하겠습니다.

0개의 댓글

관련 채용 정보