본문 바로가기

dev/Spring49

[Spring] Redirect 시 attribute 값 넘기기(+내용 추가) >> Redirect로 페이지를 이동할때 Model 에 데이터를 담아서 넘길때 값이 넘어가지 않는 현상을 볼 수 있다. >> 이때는 >>>> RedirectAttributes 객체 2022. 8. 19.
[Spring] log4jdbc-log4j2 설정 DB 작업간에 에러 또는 정보를 얻기 위하여 log 설정을 한다. 우선 가장 먼저 해야 할 것은 1. pom.xml에 Dependency 를 추가해 준다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 2. root-context.xml 에서 dataSource 설정을 변경해 준다. >> driverClassName / url 이 조금 수정되었다. 3. log4jdbc-log4j2 설정 파일을 등록한다. >> log4jdbc.log4j2.properties log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator >> logback.xml logback.xml 작성 방법 사용할 .. 2022. 8. 3.
[Spring] REST API , Ajax Java Script Option Notation - 자바스크립트 객체 표기법 { 속성명1 : 속성값, 속성명2 : 속성값2 ... } >> 객체 배열 [{ 속성명1 : 속성값 },{ 속성명2 : 속성값2}] >> Map {키1:{속성명:속성값,.., 키2 : {속성명 : 속성값,....} >> Stringify() 와 parse() - JS객체를 서버로 전송하려면, 직렬화(문자열로 변화)가 필요 * JSON.stringify() - 객체를 JSON문자열로 변환 (직렬화, JS객체-> 문자열) { name = "John", age:30} [ JS객체 ] ======> { "name" : "John", "age" : "30" } [ String ] - 서버가 보낸 데이터(Json문자열)를 JS객체로 변환할.. 2022. 7. 15.
[Spring] URLDecode.decode 안뜨는 현상 수정 >> 아래와 같이 ${URLDecoder.decode(param.msg} 가 안뜨는 현상이 발생하였다. >> 이유를 못찾다가 결국 찾은게 import를 안해줘서 였다 import를 해주자 !!!! 2022. 7. 13.
[Spring] Paging >> 페이징 - 게시판에서 글 페이지처리하는 것을 페이징이라고 하며 페이징을 위한 PageDto 가 있어야 한다. - PageDTO에는 페이지에 관한 속성들이 존재한다. >> 속성들을 하나씩 생각해보자 - totalCnt : 총 게시물의 숫자 - pageSize : 한페이지에 나타낼 게시물의 숫자 - naviSize : 페이지 이동할때 나타낼 페이지의 숫자 - totalPage : 총페이지 숫자 - page : 현재 페이지 - beginePage : 네비게이션에 나타낼 첫번쨰 페이지 숫자 - endPage : 네비게이션에 나타낼 마지막 페이지 숫자 - showPrev : 이전페이지 네비게이션을 보여줄지 말지 여부 - showNext : 다음페이지 네비게이션을 보여줄지 말지 여부 .. 2022. 7. 13.
[Spring] Mybatis -1 (2방법) MyBatis을 직접적으로 사용할수도 있지만 Spring에서 Mybatis를 사용하려면 >> Mybatis org.mybatis mybatis 3.5.10 >>Mybatis-Spring org.mybatis mybatis-spring 2.0.7 2개가 필요로 하다. pom.xml 에 dependency 를 추가해야 한다. 또한 Mybatis를 위한 mybatis-config.xml (mybatis 설정파일) 과 Mapper 파일을 지정해줘야 한다. >> root-context.xml에 SqlSessionFactory와 SqlSession은 SqlSessionFactoryBean, SqlSessionTemplate을 통해서 만들어진다. 형태로는 @Controller --> @Service ---> @Rep.. 2022. 7. 12.
[Spring] @Transactional-2 Transcation의 속성 속성 설명 propagation Tx의 경계(Boundary)를 설정하는 방법을 저장 isolation Tx의 isolate level을 지정, DEFAUL, READ_UMCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE Default의 경우 DB설정을 따른다(Default = REPEATABLE_READ) readOnly Tx이 데이터를 읽기만 하는경우, true로 지정하면 성능이 향상 rollbackFor 지정된 예외가 발생하면, Tx를 rollback // RuntimeException과 Error는 자동 rollback noRollbackFor 지정된 예외가 발생해도, Tx을 Rollback하지 않음 timeout 지.. 2022. 7. 12.
[Spring] @Transactional-1 Presentation Layer >> CONTROLLER : 사용자의 요청을 받는 부분 Businees Layer >> SERVICE : 비즈니스 로직을 처리할 계층 >> Tx 처리를 해야하는 부분 Persistence Layer >> DAO : CRUD가 이뤄지는 계층 >> TransactionManager란? - DAO의 각 매서드는 개별 Connection을 사용 ==> 1개의 Connection을 사용하도록 해야 Rollback하여 되돌릴 수 있음 ==>> DAO에서 Connection을 얻거나 반환할떄 DataSourceUtils를 사용해야 한다. ===> Connection con = DataSourceUtils.getConnection(ds); ===> DataSourceUtils.rele.. 2022. 7. 12.
[Spring] AOP-2 관점지향 프로그래밍, 횡단 관심사, cross-cutting concerns 부가 기능(advice)를 동적으로 추가해 주는기술 >> 메서드의 시작 또는 끝에 자동으로 추가 >> 부가기능 m.invoke(obj,args) >> 핵심 기능 >> 부가기능 >> Custom, Sales, Clert 라는 메서드에 Logging, Transaction, Security 가 모두 들어간다 고했을때 이 기능들을 분리하여 공용으로 사용할수 있도록한다. 그리고 해당 메서드에 자동으로 주입해준다. ======================== AOP 관련용어 target : advice가 추가될 객체 ( custom, sales, clert ) advice : target에 동적으로 추가될 부가 기능(코드) (Loggin.. 2022. 7. 12.
[Spring] Transaction, Commit, Rollback >> Transaction - 더 이상 나눌수 없는 작업의 단위 - N개의 Transaction이 모두 성공하지 않으면 Transaction이 실행되기 전으로 Rollbak해야 한다. - N개의 트랜잭션을 1개의 트랜잭션으로 묶어서 처리해야한다. ◆ 트랜잭션의 속성 (원일이는 지독해) > 원자성(Automicity) : 나눌수 없는 하나의 작업으로 다뤄줘야 한다(입금/출금 ==> 하나의 작업으로) > 일관성(Consistency) : Tx가 수행전과 후가 일관된 상태를 유지해야 한다. > 독립성(Isolation) : 각 Tx는 독립적으로 수행되어야 한다. (Tx가 다른 Tx에 영향을 끼치면안된다.) - Isolation Level --- READ UNCOMMITED : 커밋되지 않은 데이터도 읽기 가능.. 2022. 7. 6.