반응형

Back-end/Spring 49

[Spring] @ResponseBody에서 객체를 JSON 반환(HttpMessageConverter)

결론은 @ResponseBody어노테이션을 사용해도, Getter 사용하지 않는 필드는 자동으로 JSON 변환이 안됩니다. (Getter를 사용해!) 롬복 @Data 어노테이션을 남발하다 보면, 기본적인 @ResponseBody가(이것도 물론 @RestController로 사용하긴 합니다.) 작동하는 최소의 조건을 잊고 살 수 있다. 토이 프로젝트를 진행하면서 최소한의 어노테이션으로 진행해보려고 하니 예전에 배웠던 것들도 다시 한번 정리하는 시간을 가지게 되었다. 하나둘 씩 정리해서 블로그에 올리려고 한다. 1. @ResponseBody - @ResponseBody 어노테이션은 컨트롤러 메서드에서 반환되는 객체를 HTTP 응답 본문에 직접 쓰기 위해 사용됩니다. - 반환 타입에 따라 적절한 HttpMes..

Back-end/Spring 2023.03.30

[Spring] 빈(Bean) 주입 받는 방법 가장 쉬운 예시

스프링에서 빈을 주입 받는 방법은 크게 3가지로 구분 됩니다. 1. 생성자 주입(Constructor Injection) - 권장 2.세터 주입(Setter Injection) 3.필드 주입(Field Injection) 위 3가지에 대한 가장 간단한 예시를 알아봅시다. 1. 생성자 주입 (권장) 생성자 주입은 스프링에서 가장 권장하는 주입 방법입니다. 생성자를 통해 의존성을 주입받기 때문에 객체가 생성될 때 필요한 의존성을 모두 주입받아 안전하게 사용할 수 있습니다. 주입 받을 객체를 생성자의 매개변수로 선언하면 됩니다. 예를 들어, 다음과 같이 생성자를 통해 의존성을 주입받을 수 있습니다. public class MyService { private final MyRepository myReposito..

Back-end/Spring 2023.03.15

[Spring] @Configuration과 @Component 사용법과 차이

스프링을 사용하면서 빈으로 클래스를 등록할 때, @Configuration과 @Component를 사용합니다. 이 둘의 차이를 구분하지 않고 사용하지 않도록 2가지 어노테이션에 대해서 알아보도록 합시다. 1. @Component @Component는 스프링의 컴포넌트 스캔 기능을 사용하여 빈으로 등록될 클래스에 적용할 수 있는 어노테이션입니다. @Component 어노테이션이 붙은 클래스는 스프링이 자동으로 빈으로 등록합니다. 이를 통해 코드 양을 줄이고 더 간결한 코드를 작성할 수 있습니다. @Component 어노테이션은 일반적으로 비즈니스 로직을 수행하는 클래스들에 많이 사용됩니다. @Component public class MyService { public void doSomething() { /..

Back-end/Spring 2023.03.15

[Spring] application.yml로 mysql DB 연동

library라는 테이블을 mysql로 만들고 난 뒤에 설정하는 상황입니다. 1. resources 밑에 application.yml 생성 2. 아래와 같이 설정 (mysql) spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver "jdbc:mysql://"를 통해서 mysql의 localhost/library DB에 접근합니다.(테이블명을 적는게 아닙니다.) username, password를 설정하고, driver-class-name을 위와 같이 설정하면 됩니다.

Back-end/Spring 2023.03.15

[Spring] AOP 내부 메서드 호출 방법

AOP 내부 메서드 호출 방법 1. 문제 상황 프로젝트에서 AOP를 사용해서 메서드들을 로그로 남겨야 하는 상황이었습니다. 제가 로그로 남겨야 하는 메서드는 외부로 노출된 메서드가 아닌, 외부로 노출된 메서드가 호출하는 내부 메서드입니다. 하지만 AOP는 클래스의 외부함수만 호출됩니다. 1-1. 상황 재연 아래 소스와 같이 외부 메서드가 있고, 외부 메서드가 호출하는 내부 메서드가 있습니다. 저는 외부, 내부 메서드 모두 AOP를 사용해야 했습니다. 1-1-1. 서비스 클래스 @Slf4j @Service public class DeanService { public void externalMethod(String input) { log.info("외부 메서드 시작"); internalMethod(input..

Back-end/Spring 2023.03.12

[SOLID] 간단한 소스코드 예제 (객체 지향 설계 5가지 원칙)

예전에 올린 글이 있습니다. 거기에는 설명을 풀어서 했다면, 이번글은 소스코드를 보여주려고 작성했습니다. (예전 글 : https://shoney.tistory.com/entry/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%96%B8%EC%96%B4-SOLID) SOLID 객체 지향 설계와 SOLID 원칙 객체 지향 설계(Object-Oriented Design)란, 객체(Object)를 중심으로 구성하는 소프트웨어 설계 방법을 뜻합니다. 객체는 데이터와 그 데이터를 처리하는 메소드로 이루어져 있으며, 이러한 객체들이 상호작용함으로써 소프트웨어를 구성합니다. 객체 지향 설계를 하는 과정에서 SOLID 원칙을 적용할 수 있습니다. SOLID 원칙은 객체 지향 설계의 다섯가지 원..

Back-end/Spring 2023.03.02

[H2] mac에서 h2 설치 및 실행방법 (spring 연결 예제 포함)

1. 아래 링크에서 h2를 먼저 다운로드 받는다. https://www.h2database.com H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2database.com 2. 터미널로 h2설치받은 경로까지 접근한다. 👇🏻 finder로 ..

Back-end/Spring 2023.01.29

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

에러 발생 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 에러 발생을 해결하는 방법은 아래와 같다. 에러 해결 방법 1) Run 메뉴에서 Edit Configurations 선택 2) 위와 선택하면 아래와 같이 나오게 된다. 오른쪽에 보면 Modify options이 보이는데 클릭한다. 3) Modify options에는 'Enable debug output'을 체크해주면 된다. 위 과정을 거치면 해당 에러가 해결되는 것을 확인할 수 있다. 정상실행 결과

Back-end/Spring 2022.11.18

[Spring] HTTP 요청 데이터 - GET 쿼리 파라미터 조회 sevlet 예제

http에서 쿼리 파라미터를 조회하는 3가지 예제를 알아보자 1. 전체 파라 조회 2. 단일 파라 조회 3. 복수 파라 조회 먼저 @WebServlet 어노테이션으로 url를 만들어준다. @WebServlet(name = "requestParamServlet",urlPatterns = "/request-param") public class RequestParamServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("[전체 파라 조회]"); r..

Back-end/Spring 2022.11.16
반응형