[Spring] 자바와 스프링의 차이점 알아보기
spring을 본격적으로 시작하기 전에 우리가 알고있는 자바와 무엇이 다른지 알아볼거에요
먼저!!
Java Resources의 java에서 패키지 하나 생성해주세요
지난번 포스팅에서 작업환경 설정할 때에
만들어두었기 때문에
bean이 들어가있는데요:)
다음과 같은 이름으로 새로 만들어주겠다는거에요:)
그 패키지 안에서 class를 만들어주세요
이제 이 public class에서 우리는 private으로 선언해주고
메서드도 작성해줄게요:)
다음과 같이 작성해주세요
그리고
Java Resources - src/main/resources에서 우클릭 - new - other
spring 검색하신 후에 Spring Bean Configuration File 클릭 - next
file name 지정해주신 후에
beans 클릭 - 아래쪽에 4.3 클릭
그리고 next 한번 더 누르고 Finish
그러면 우리가 처음 다뤄보는 xml 파일이 만들어지쥬?!
여기서는 우리가 아까 위에서 만들었던 Hello 클래스에 대한 bean을 설정해줄 공간입니다:)
<bean name="이름" class="클래스 경로.클래스이름"/>
그리고 출력을 해낼 메인 클래스 하나 만들어주세요:)
저는 HelloMain이라고 지어주었어요
자바와 스프링 방식이 뭐가 다른지 비교해보도록할게요
우선 자바방식부터!
제가 객체를 두개 생성해주었어요 ---> hello1, hello2라고 말이죠
그리고서 그 두개가 같은지 출력했더니
false라고 출력이 됩니다!!!
자바에서는 new로 생성할때마다 새로운 영역에 생성되기 때문입니다.
이제 스프링 방식 으로 출력해볼까요?
스프링으로 출력하려면
아까 만든 xml파일 가져오셔야합니다:)
hello class에 대한 bean공간을 만든 그 파일이요!!
app1이라는 이름으로 객체생성 후 wml을 주입시킵니다
그리고
우리가 resources에다가 만들어주었기 때문에
경로를 다 적지 않고 이름만 적어도 okay
이제 자바방식으로 했던 것처럼
app1이라고 객체생성해주세요!!
그리고 Hello 객체를 생성해줄거에요
h1이랑 h2로 만드는 대신 방법을 다르게 만듭니다:)
방법1
Hello h1=(Hello)app1.getBean("hello"); //방법1
System.out.println(h1.getMessage());
방법2
Hello h2=app1.getBean("hello",Hello.class); //방법2
System.out.println(h2.getMessage());
그리고 h1과 h2를 비교해볼게요~~
자바때와는 다르게 true라고 나오는 게 보이시쥬?
그 이유는 기본적으로 스프링은 자바와 다르게 싱글톤 이기 때문입니다:)
아까 자바는 비교했을 떄 false라고 출력되지만
스프링은 생성한 주소가 같기 때문에 true라고 출력되는 것입니다