Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 리눅스 #기초 #네트워크 #포트 번호 #역할
- 리눅스 #기초설정 #가이드 #명령어
- 명령어 #기초 #비밀번호 설정
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 리눅스 #사용자계정 #정보관리
- vmware #가상화 #aws 클라우드 #아키텍트 #과정 #가상머신 #컨테이너 #docker
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 리눅스 #명령어 #사용자 계정 정보 관리
- oracle vmbox #rocky #linux9 #명령어 #암호화인증 #해시알고리즘
- 리눅스 #
- haproxy #wordpree #php #linux #가상화 #가상머신 #내용정리
- 인바운드 #아웃바운드 #방화벽설정
- virtualbox #vmware #router #nat #pat #네트워크 구성도 #aws #ubuntu #
- 프로세스 #CPU #시공유 #커널
- sasac #aws 클라우드 #아키텍트 과정 #가상화 #vmbox #vmware #esxi #tar #selinux
- ubuntu #설정변경 #vmware #vmbox #linux #명령어
- 사용자 그룹관리
- storage #로컬스토리지 #세션스토리지 #백그라운드 서비스
- selinux #실행모드 변경 #설정방법
- tar #build #배포 #통신포트 #설정방법 #linux #apache
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 리눅스 #명령어 #내용정리 #mac #특수권한
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- samba #가상머신 #daemon
- mysql #linux #설정 #wordpress #웹사이트 #db 연결 #
- 쓰레드 #쓰레드풀 #프로세스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- 비트 #바이트 #이진수
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
Archives
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 Spring Master 3강 Bean을 수동등록 하는 방법 본문
초기 설정
build.gradle
// Security
implementation 'org.springframework.boot:spring-boot-starter-security'
secuirity 기능제한
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
@SpringBootApplication(exclude = SecurityAutoConfiguration.class) // Spring Security 인증 기능 제외
public class SpringAuthApplication {
public static void main(String[] args) {
SpringApplication.run(SpringAuthApplication.class, args);
}
}
Bean 수동등록?
@Component를 사용하면
@ComponentScan 에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록해준다.
프로젝트 규모가 커질수록 등록할 Bean들이 많아지기에
자동등록을 선호한다.
그래서 @Controller와 @Service 와 같은 에너테이션들을 사용해서
Bean으로 등록관리하면 알아보기 쉽기때문에
개발 생산성에 유리하다.
Bean 자동등록이 있다면 수동등록은?
기술적인 문제 or 공통 관심사를 처리할 때 사용하는 객체들은
수동으로 등록하는것이 좋다.
공통 로그처리와 같은 비즈니스 로직을 지원하기 위해
부가적이고 공통적인 기능들을
기술 지원 Bean이라 부르고 수동등록한다.
비즈니스 로직 Bean보다 그수가 적어서
수동으로 등록하기 부담스럽지 않다.
수동등록된 Bean에서 문제가 발생했을 시
해당 위치 파악이 용이하다.
Bean 수동 등록하는 방법
@Configuration
public class PasswordConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
Bean으로 등록하고자 하는 객체를 반환하는 메서드 @Bean을 설정
Bean을 등록하는 메서드가 속한 해당 클래스에 @Configuration을 설정
Spring 서버가 사용될 때 Spring Ioc 컨테이너에 Bean으로 저장된다.
// 1. @Bean 설정된 메서드 호출
PasswordEncoder passwordEncoder = passwordConfig.passwordEncoder();
// 2. Spring IoC 컨테이너에 빈 (passwordEncoder) 저장
// passwordEncoder -> Spring IoC 컨테이너
Bean이름 : @Bean이 설정된 메서드명
public PasswordEncoder passwordEnder() {...} => passwordEncoder
소문자를 체크
Bean 등록하기
@Configuration
public class PasswordConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
암호화하기
@SpringBootTest
public class PasswordEncoderTest {
@Autowired
PasswordEncoder passwordEncoder;
@Test
@DisplayName("수동 등록한 passwordEncoder를 주입 받아와 문자열 암호화")
void test1() {
String password = "Robbie's password";
// 암호화
String encodePassword = passwordEncoder.encode(password);
System.out.println("encodePassword = " + encodePassword);
String inputPassword = "Robbie";
// 복호화를 통해 암호화된 비밀번호와 비교
boolean matches = passwordEncoder.matches(inputPassword, encodePassword);
System.out.println("matches = " + matches); // 암호화할 때 사용된 값과 다른 문자열과 비교했기 때문에 false
}
}
반응형
'Spring' 카테고리의 다른 글
스파르타 부트캠프 Spring Master 3강 인증과 인가란 (0) | 2024.05.24 |
---|---|
스파르타 부트캠프 Spring Master 3강 같은 타입의 Bean이 2개일 경우 (0) | 2024.05.24 |
스파르타 부트캠프 Spring Master 2강 영속성 컨텍스트 기능 (0) | 2024.05.22 |
스파르타 부트캠프 Spring Master 2강 Entity이해하기 (0) | 2024.05.22 |
스파르타 부트캠프 Spring Master 2강 ORM과 JPA, 하이버네이트 (0) | 2024.05.22 |