관리 메뉴

개발하는 동그리

Spring MVC (1) - 원격 프로그램의 실행 본문

IT 정보/Spring

Spring MVC (1) - 원격 프로그램의 실행

개발하는 동그리 2022. 5. 12. 00:16
반응형
Public class Main {
	public static void main (String[] args) {
    	System.out.println("Hello");
    }

Command Line에서 실행한다면!? 

   - java Main 입력 후 Enter 누르면! 실행  (java = java.exe = 자바 인터프리터)가 Main Class 에 있는 main()메서드 호출

자바 인터프리터가 main() 메서드를 호출할 수 있는 이유는 main 메서드가 static 이기 때문이다.
static 이 아닐경우 객체를 생성해야 하나 static 이기 때문에 객체생성이 필요없다.!!


원격 프로그램을 실행하려면!? 필요한 것!

클라이언트  ---> 호출 서버
브라우저 (IP 주소입력) 응답 <---  WAS (톰캣)( : 8080 port )

  

원격 서버에서 실행할 프로그램을 선택하려면!? 

  • 프로그램 등록 (외부에서 호출할 수 있도록)
  • URL하고 프로그램을 연결

 

package com.fastcampus.ch2;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller // 1. 프로그램 등록
public class Hello {
	
	
	@RequestMapping("/hello") // 2. URL과 main()을 연결
	public void main() { 
		System.out.println("Hello - static");
	
	}

 

일반적으로 인스턴스 메서드는 객체생성이 반드시 필요하다. 하지만 지금 같은 경우는 톰켓이 객체생성을 대신 해준다. 따라서 static을 사용할 필요가 없다. static을 사용해도 문제는 없으나 사용했을 시에 인스턴스를 사용할 수 없는 제약이 생기기 때문에 사용하지 않는 편이 더 유리하다. 

static 메서드 instance 메서드
cv 가능 / iv 불가 cv, iv 모두 사용 가능

private 메서드도 외부에서 호출이 가능하다. 그 이유는 ( RequestMapping )아노테이션을 사용해서 외부 URL 하고 연결해서 외부에서 호출 가능하게 하겠다는 뜻이기 때문이다.

-> Reflection API 를 사용 - 클래스 정보를 얻고 다룰수 있는 강력한 기능이다.
-> java.lang.reflect 패키지를 제공

그러나 내부에서는 private 로써 역할은 한다. 

반응형