Properties 설정
properties란?
- Spring 에서는 주요 정보를 properties 파일에 저장해 놓거나 불러와서 사용(설정할 때 많이 씀 )
- Xml 이나 properties 는 정보를 컴파일 하지 않기 때문에 쉽게 읽고 수정이 가능
- 그런데 xml은 잘모르는 사람이 봤을 때 읽기 힘듦
- 유지보수를 위한 엔지니어등을 위해 설정은 properties파일을 많이 씀
- 하지만 보안 성 측면에서는 위험할 수 있다.
- 자바의 웹인터페이스를 구현받음(?)
classpath : classes 폴더를 말함. 파일 경로를 쓸 때 사용
properties를 사용하기 위한 설정
- 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에서 찾는대
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 사용할 때
- db 설정할 때 값을 넣을 때
- 특정 값을 가지고 소스에 적용할 때 (ex)최초 아이디와 비밀번호 지정할 때 )
( properties는 이미 설정 되어있는 경우가 많다 )
04_LoginService
+
이럴경우 관리자 체크를 안하면 admin이 안들어와서 400이 떨어짐 , 그럴 땐 파라메터를 hashmap으로 받기
+ 로그인아이디 서비스
예전에는 null로 있냐 없냐 했지만 nullpointexception 이 일어날 수 있다
: String loginId = service.login(id,pw); if(loginId != null){
cnt로 받는 방법 몇개있어? 로 물어보기 count