Spring Framework

Properties 설정

꾸주니12 2022. 7. 11. 23:59

properties란?

- Spring 에서는 주요 정보를 properties 파일에 저장해 놓거나 불러와서 사용(설정할 때 많이 씀 )
- Xml 이나 properties 는 정보를 컴파일 하지 않기 때문에 쉽게 읽고 수정이 가능

- 그런데 xml은 잘모르는 사람이 봤을 때 읽기 힘듦

- 유지보수를 위한 엔지니어등을 위해 설정은 properties파일을 많이 씀 

- 하지만 보안 성 측면에서는 위험할 수 있다.

- 자바의 웹인터페이스를 구현받음(?)                                                                                                                                                                                                                                                                                                                            

classpath : classes 폴더를 말함. 파일 경로를 쓸 때 사용

 

 

 

properties를 사용하기 위한 설정

  1. root-context.xml 설정 추가
<!--  properties를 사용하기 위한 설정 -->
	<bean id="propertyConfiguer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:props/*.properties</value>
			</list>
		</property>
	</bean>

2. src/main/resources밑에 props(properties의 약자) 폴더 만들어주기 

3. props 폴더 밑에 파일 추가 -  globals.properties (한글 쓰지말기)

datasource-context.xml 의 내용을 globals.properties파일에 담고, datasource-context.xml의 내용도 수정해줌!

Globals.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
Globals.url=jdbc:log4jdbc:mariadb://IP:port번호/데이터베이스명
Globals.username=db userd이름
Globals.password=db 비번

key= value 형태로 쓰기 

 

-> 이런식으로 설정 후 Classes 밑에 어떤 properties파일에 어떤거 수정해주세요~ 하면되는거야!

 

 

 

 

 

properties에 있는 내용을 자바소스에 적용하는 법

1.Root-context.xml  > namespaces - util 체크

<util:properties id="config" location="classpath:props/superUser.properties"/>

 

2. src/main/resource - props 폴더 밑에 superUser.properties파일 생성 

최고관리자는 db가 설정 완료되어 접속되기전에 접속을 해야됨 

superUser.properties 에는 해당 아이디와 비번이 있음 

관리자를 체크하고 로그인하면 디비에서 안하고 propertires에서 찾는대 

superUser.properties에 관리자 아이디와 비번 내용 추가

3.Properties에 있는 내용 불러오기

	//Properties에 있는 내용 불러오기 
	@Value("#{config['superUser.super.id']}") String adminId;
	@Value("#{config['superUser.super.pw']}") String adminPw;

변수 선언이 필요한 곳에 내용을 불러온다

 

 

*주의사항*

- 키가 중복되면 덮어쓴다 그래서 super.id super.pw 네이밍 잘 하기 (superUser.properties)

- 처음에 super.id= / super.pw= 로 했는데 에러남. 3단으로 해주기! 

 

 

properties 사용할 때                                                                           

  1. db 설정할 때 값을 넣을 때 
  2. 특정 값을 가지고 소스에 적용할 때 (ex)최초 아이디와 비밀번호 지정할 때 )

( properties는 이미 설정 되어있는 경우가 많다 )

 

 

 

 

04_LoginService

+

controller

이럴경우 관리자 체크를 안하면 admin이 안들어와서 400이 떨어짐 , 그럴  파라메터를 hashmap으로 받기

 

 

 

+ 로그인아이디 서비스

예전에는 null로 있냐 없냐 했지만 nullpointexception 이 일어날 수 있다 

                  :    String loginId = service.login(id,pw);      if(loginId != null){

cnt로 받는 방법 몇개있어? 로 물어보기 count 

controller
mapper