와 지금까지도 머라머라 치고 실행하면 결과 나오는 게 재밌을 때가 많았는데 Scanner나 sysout 안 쓰고 크롬에서 입출력 다하니까 더 신기햐 ㅋㅋ 초반에 main이 아닌 Controller에서 run을 하는 게 익숙하지 않아서 자꾸 404 에러 화면이 튀어나옴. ? 물음표 백만 개 ^^^^.. 직전 main을 실행하고 있던 거였음 ㅋㅋ 어쨌든 에러는 console에 실마리가 있었다.
이전 강의까지만 해도 java → jsp/servlet → spring(legacy) → spring boot 순으로 수업을 나갔는데 우리부터는 냅다 spring boot를 배우는 걸로 커리큘럼이 업데이트 되었다고 함. 수강생 피드백을 반영한 거라고 하는데 몰?루? legacy도 알긴 알아야 해서 궁금하면 먼저 살펴보라고 참고 자료를 주셨다. 머가 이렇게 많은쥐 ?.?
M1에 오라클 설치하는 게 핵 스트레스였어서 스프링도 속썩일까봐 과제도 미리 제출까지 하고 왔는디 넘 스무스하쥬? ㅋㅋ 실행하려면 단축키 네 개를 ㅋㅋ 눌러야되는게 오바스럽긴 한디 웬만해서는 자주 누를 일이 없을 거 같아서 다행임. devtool 어케 돌아가는 건지는 모르겠지만 자동 재시작? 박수.
오늘 서론이 기네..
스프링 특: 자기만 주목받고 싶어함. 모든 기술을 스프링화 해놨음
스프링 특: apache tomcat 이런 준비물을 갖고 싶지 않음. 원터치 컨셉(일단 구현은 되게 해줄게)
[boot]
표시 노출Web server failed to start. Port 8080 was already in use.
오라클
의 서비스 포트를 변경하는 방법
--sqldeveloper > system 계정에서 설정
select dbms_xdb.getHttpport() from dual; //현재 포트 번호 확인
exec dbms_xdb.setHttpport(9090); // 서비스 포트 변경
스프링
의 서비스 포트를 변경하는 방법
- 프로젝트 생성 시마다 변경 필요
//src/main/resources > application.properties
//서버를 꺼놓고 바꾸는 것 권장
server.port=8888;
Alt + F5
)나는 프로젝트 생성 후 실행 > stop > github에 commit > 실행 시 100%로 이 에러가 발생함ㅋㅋ
src/main
: 배포될 프로젝트에 포함되는 내용들이 위치하는 곳src/main/java
: Java Source File이 위치하는 곳Boot00Application.java
: Spring Boot App이 시작하는 main 파일ServletInitializer.java
: Web Container에 배포될 경우 운영 설정 파일src/main/resources
: 설정파일과 정적 콘텐츠가 위치하는 곳static
: 정적 컨텐츠 파일의 위치(ex : 이미지, 스크립트 등)templates
: Thymeleaf 등 HTML 기반 템플릿 파일의 위치application.properties
: Spring Boot 중앙 설정파일(yml로 치환가능)src/main/webapp
: (구) 설정파일의 위치. (현) JSP 파일의 위치src/test
배포될 프로젝트에 포함되지 않는 테스트 코드가 위치하는 곳<>
태그: 기록해두고 싶은 것들을 태그와 태그사이에 둠</>
@RequestMapping(key = value)
와 같은 형태로 작성 ```java
@Controller
@RequestMapping("/calculate") //공용 주소
public class ParamController {
}
```
- 메소드에 사용하면 해당 메소드에서 지정한 방식으로 URI를 처리
@RequestMapping("/bmi")
@ResponseBody
public String bmi(@RequestParam double cm, @RequestParam double kg) {
}
http://localhost:8888/calculate/bmi?cm=180&kg=80
쿼리 스트링
(query string))?
를 찍고 key=value 형태로 첨부```
http://localhost:8888/age?year=2000
//파라미터 이름(key): year, 인자(value): 2000
```
@Controller
@RequestMapping("/calculate")
public class ParamController {
@RequestMapping("/age")
@ResponseBody
public String age(@RequestParam int birth) {//입력
int age = 2022 - birth + 1;//처리
return "나이 : " + age; //출력
}
@RequestMapping("/calendar")
@ResponseBody
public String calendar(@RequestParam int year, @RequestParam int month) {
Calendar c = Calendar.getInstance();
c.set(year, month - 1, 1);
int max = c.getActualMaximum(Calendar.DATE);
return year + "년 " + month + "월은 " + max + "일";
}
}
http://localhost:포트번호/test
입력 > 클래스에 작성한 내용이 브라우저 화면에 출력됨새 프로젝트를 run
해야 함?
(URI에 단 하나만 존재 가능)