코딩 중 html 수정 후 매번 서버 재시작이 번거러움

spring-boot-devtools 라이브러리 사용한다면 재시작 없이 변경 사항을 바로 확인 가능

spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능

 

[수정]

1. build.gradle -> dependencies -> spring-boot-devtools 라이브러리 추가

 

 

아래 코드 추가

implementation 'org.springframework.boot:spring-boot-devtools'

 

2. Gradle reload 필수

 

3. html 수정 후 인텔리J 컴파일

 - 인텔리J 컴파일 방법: 메뉴 build -> Recompile

 

4. 테스트

 

 

 

[오류]

Spring Boot 프로젝트 생성 후 바로 run 할 경우 아래와 같은 오류 발생 및 무한 로딩

 

[해결방안]

1. 가급적 JDK 11을 설치 및 진행

2. Settings -> Gradle 들어가기

다음 이미지를 참고해서 해당 부분을 IntelliJ IDEA로 변경

2. 다시 실행

 

 

Bean이란 ?

스프링 컨테이너에 등록한 객체들을 Bean 이라고 한다

 

자바 어플리케이션은 어플리케이션 동작을 제공하는 객체들로 이루어져 있어

객체들이 서로 상호작용하며 동작하느데 이때, 상호작용하는 객체를 '객체의 의존성'이라고 표현한다

 

 

 

Bean의 특징

  • @Configuration 설정된 클래스의 메소드에서 사용 가능
  • 메소드의 리턴 객체가 스프링 빈 객체임을 선언
  • 빈의 이름은 기본적으로 메소드의 이름
  • @Bean(name = "name")으로 이름 변경 가능
  • @Scope를 통해 객체 생성 조정 가능
  • @Component 어노테이션을 통해 @Comfiguration 없이 빈 생성 가능
  • 빈 객체에 init(). destory() 등 라이프사이클 메소드를 추가한 다음 @Bean에서 지정 가능

 

Bean 등록 2 가지

 

첫번째. 컴포넌트 스캔과 자동 의존관계 설정

클래스 선언부 위에 @Component 어노페이션 사용

 

@Service, @controller, @Repository 모두 @Component를 상속받고 있으며,

해당 어노테이션으로 등록된 클래스들은 스프링 컨테이너에 의해 자동으로 생성되어 스프링 빈을 등록된다

 

두번째. 자바 코드로 직접 스프링 빈 등록

수동으로 스프링 빈을 등록하려면 자바 설정 클래스를 만들어 사용

 

1.설정 클래스를 만들고

2.@Configuration 어노테이션을 클래스 선언부 위에 추가

3. 특정 타입을 리턴하는 메소드 만들고

4. @Bean 어노테이션을 붙여주면 자동으로 해당 타입의 빈 객체 생성됨

 

 

 

1번 방법이 간단하고 많이 사용되지만, 2번 방법도 사용에 따라 사용됨

 

- @Autowired

생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어줌

이렇게 객체 의존관계를 외부에서 넣어주는 것을 '의존성 주입(DI)'이라고 한다

 

** Bean 등록시 주의 사항

스프링은 스프링 컨테이너에 스프링 빈 등록 시, 기본으로 싱글톤으로 등록

 

덧셈식 출력하기

 


[문제 설명]
두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.
a + b = c


[제한사항]
1 ≤ a, b ≤ 100


[입출력 예]
입력 #1
4 5
출력 #1
4 + 5 = 9

 

[문제 해결]

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.printf("%d + %d = %d",a,b,a+b);	//방법 1
        System.out.printf(a + " + " + b + " + " + (a+b));	//방법2
    }
}

 

// 방법 3

        int sum = a+b;

        System.out.println(a + " + " + b + " = " + sum);

+ Recent posts