클래스를 새로 만들었다.

 

 

원격 호출가능하도록 @Controller와

URL과 메서드를 연결가능하도록 @RequestMapping을 만들었고 /hello로 지정하였다.

 

 

 

서버를 실행 시켜보니 보기와 같이 404 Not Found가 나와서 에러인가?

 

 

하지만 Console창을 확인해보니 Hello가 출력됨을 알 수 있었다.

즉, 호출이 잘 된 것이고 새로고침을 해보면 Hello가 한번 더 출력된다.

 

 

url의 /hello를 지우니 원래처럼 잘 호출한다.

 

코드를 아래와 같이 수정해보았다.

 

 

출력 결과

url에 /hello를 추가하여 main2는 호출되지 않았는데

main2를 호출하고 싶으면 매핑을 추가하면 된다.

main이 static이 아니라서 static변수와 인스턴스 변수를 모두 사용할 수 있기에 권장된다.

 

 

 

 

그런데 private은 접근제한자 중에 숨기는 것인데 어떻게 호출이 될 수 있을가? 

 

chatgpt

 

다른 클래스에서 private에 접근하는 것은 원래는 불가능하나

다음과 같이 java에서 제공하는 reflect API를 활용하면 접근이 가능하다.

 


 

 


 

MVC project를 로컬에서 만들수 없기에

 

기존의 firstSpring 폴더를 복사 +붙여넣기해서 새로 만들었다.

 

 

그리고 나서 붙여 넣기할때 프로젝트 이름을 변경하여 생성했다.

 

 

잘 만들어진 모습

 

 

새로 만들어진 ch2폴더의 pom.xml에 들어가서

 

 

firstSpring의 이름을 모두 찾아서 ch2로 replace 하였다.

 

 

 

하지만 다시 서버를 실행시켜보면 ch2가 아닌 firstSpring이 동작함을 알 수 있다.

 

 

 

이를 해결하기 위한 방법으로는 우선 패키지뷰에서 폴더를 삭제하는 데

중요한건 저 체크표시를 하면 안된다. (그러면 전부 사라지는 것? 같다)

출처 :https://www.youtube.com/watch?v=DRJojJvWuFo

 

그리고 원래 폴더가 저정되었던

생성된 경로에 들어가서 src와 pom.xml을 제외하고 모두 삭제

 

그리고 STS에 들어가서 import - Maven - Existing Maven Projects에서 Browse로 폴더를 찾아주고

import할 것만 클릭해서 가져온다.

 

그리고 서버를 다시 실행하면

실행도 잘 되고 기존의 firstSpring으로 시작 되었던 것이 ch2로 실행하게 된다.

 

만약에 마지막 과정에서 에러가 날 경우

서버가 한번에 동시에 두개를 실행하려 한 것일 수 있으니

서버를 중지했다가 다시키면서 ch2를 선택하자

+ Recent posts