본문 바로가기

카테고리408

[Spring] 부트에서 AOP 의존성 추가하고 사용하기 @Aspect [Spring] AOP 개념과 용어 8가지 AOP란? 관점지향 프로그래밍으로, 문제를 바라보는 관점을 기준으로 프로그래밍 하는 방법론 what when where 횡단관심사(cross-cutting-concerns) 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 bright-landscape.tistory.com AOP에 대해 알아보고 싶다면 위 포스팅으로. build.gradle HTML 삽입 미리보기할 수 없는 소스 위 코드를 build.gradle에 추가시켜준다. application.properties에 가서 나는 로깅 레벨을 info로 찍을 것이기 때문에 위와 같이 코드를 짰다. LoggingAspect HTML 삽입 미리보기할 수 없는 소스 현재 위 코드에서는 @Before과 @A.. 2023. 9. 18.
[Spring] SqlSessionTemplate 대신 Mapper 인터페이스 사용 SqlSessionTemplate 사용한 ServiceImpl 클래스 여태까지 나는 ServiceImpl 클래스에서 항상 SqlSessionTemplate을 주입받아 사용해왔다. 하지만, 또 다른 방법이 있어 기록하고자한다. Mapper 인터페이스를 사용한 ServiceImpl 클래스 하지만 위 ServiceImpl을 보면 MemberMapper 라는 녀석을 주입받아 사용한다. 그리고 mapper 패키지에 MemberMapper라는 녀석이 보인다. 얘는 뭐하는 놈일까? MemberServiceImpl 클래스에서 private MemberMapper memberMapper 필드를 @Autowired로 주입하고 사용하는 이유는 Spring에서 데이터 액세스를 수행하는 객체에 대한 의존성을 주입하기 위해서이다.. 2023. 9. 18.
[Spring] 스프링 부트 mySql mybatis 연동하기 (gradle) mySQL 위 데이터들을 콘솔에 뿌려볼 것이다. 1. build.gradle HTML 삽입 미리보기할 수 없는 소스 위 코드를 build.gradle에 있는 dependencies에 복붙해주자. (추가 한뒤 리프레쉬 해야함.) 2. application.properties HTML 삽입 미리보기할 수 없는 소스 위 코드를 application에 복붙해준다. 이때 url에 있는 bitdb는 왼쪽 사진에 있는 테이블 명을 나타내고, username과 password는 root 계정과 그 비밀번호를 나타냈다. 또한 mybatis 경로를 설정해주어야하는데, 노란색 표시와 같이 경로를 잘 지정해주자. member-mapper.xml MemberVO mapper와 대입될 데이터들을 만들어준다. service Con.. 2023. 9. 15.
[Spring-Legacy] validate 유효성 검사 jsp jsp에서 input 태그의 name과 age, 그리고 js에서 여기에 데이터를 입력 후 serialize를 통해 ajax로 넘긴다. VO와 컨트롤러 ValidateModel이라는 객체를 만들어, input 데이터를 받아주기 위해 name과 age를 만들었고, 컨트롤러 ajax에서 modelAttribute로 받아 콘솔에 찍어볼 것이다. 데이터를 찍어보니 잘 나온다. ValidaterTest ValidaterTest 클래스를 만들어, Validator를 구현시켜준다. 그리고 오버라이드를 시켜주고, 오른쪽과 같이 return을 수정한다. 이렇게 지정해야 해당 모델을 검사해준다. ValidaterTest 문자를 계산하는 StringUtils는 org.springframework.utl을 사용해준다. .. 2023. 9. 14.
[Spring-Legacy] XML로 Interceptor 인터셉터 사용하기 interseptor.jsp 로그인 버튼을 누르면, 컨트롤러에 있는 loginInterChk로 이동할 것이다. 컨트롤러 컨트롤러로 오게되면 콘솔창에 loginInterProcess Controller 를 출력하고, 페이지 이동을 한다. 인터셉터 컨트롤러 컴포넌트의 value를 inter로 지정해주고, 이를 다른곳에서 참조하게 되면 인터셉터가 실행되는 것이다. servlet-context.xml 1. xml에서 인터셉터를 등록해주고, 2. mapping 시키는 곳에 path를 적용시킬 컨트롤러 주소, 3. bean을 인터셉터 value 값을 대입. 해당 페이지에서 LOGIN을 눌르면, 콘솔창에 preHandle, postHandle, afterCompletion 모두 나오는 걸 볼 수 있다. 인터셉터 컨트.. 2023. 9. 14.
[Spring] SessionAttribute 보호되어 있는 글 입니다. 2023. 9. 14.
[Spring] 구글 차트 DB에 넣어 Ajax로 시각화하기 https://developers-dot-devsite-v2-prod.appspot.com/chart/interactive/docs/gallery/piechart?hl=ko 시각화: 원형 차트 | Charts | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 시각화: 원형 차트 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요 SVG developers.google.com 구글 차트로 데이터를 시각화시켜보았다. 방법1. (Iterator 사용하고,, 어려운 방법이니 추천하지 않는다.) ajaxDemo3.jsp HTML 삽입 미리보기할 수 없는 소스 : Goog.. 2023. 9. 14.
[Spring] thymleaf에서 제공하는 th:object 와 th:field th:object 에서 사용할 객체를 지정한다. form에서 th:obejct="${item}" 을 지정하고, th:field="*{itemName}"과 같이 넣어주게 되면 id, name, value 속성을 모두 자동으로 만들어준다. th:object = "${item}" 이렇게 받아주고, form 안에 있는 태그들에게 th:field를 주고, *{객체에 있는 변수명} 을 작성해주면, id와 name 값이 지정된다. 이렇게 th:field="*{itemName}"을 작성해주고 나니, 실행된 웹 브라우저에서 id와 name 값이 itemName으로 세팅됐다. th:field는 id, name, value 값을 지정해주는데, 현재 input의 value 값은 비어있으므로 "" 이 출력된다. input 태그.. 2023. 9. 13.
[jQuery] Ajax에서 serialize()로 form 데이터 모두 넘기기 HTML 삽입 미리보기할 수 없는 소스 JSP 위 jsp의 form 태그안에 있는 데이터들을 ajax에서 한번에 넘겨줄 것이다. js 원래대로라면 주석과 같이 컨트롤러로 데이터를 넘길때, 하나하나 지정해주어야하지만, serialize()를 사용하면 데이터들이 name에 준 이름으로 한번에 넘어간다. Send 버튼을 누르면 데이터들이 알아서 직렬화되서 이름에 맞게 넘길 수 있다. DTO와 컨트롤러 CardFormBean 객체를 생성해서 컨트롤러에서 바로 찍어봐도 매개변수가 같으면 값이 찍히는걸 확인할 수 있다. 2023. 9. 13.
[jQuery] RestApi 사용해서 Ajax 데이터 뽑아내기 DB데이터에 저장된 데이터 뽑기 컨트롤러 DB에 저장된 데이터들을 조회하여 컨트롤러에서 List에 담긴 데이터들을 Ajax로 return 시키는 것이다. HTML 삽입 미리보기할 수 없는 소스 $(v).each(function(index, x) { ... });: 이 부분은 서버에서 받은 데이터(v)를 순회하면서 각 항목을 처리한다. $(v)는 받은 데이터를 jQuery 객체로 변환한다. .each() 함수를 사용하여 데이터를 순회하며 각 객체(x)에 대한 처리를 수행한다. *아래에서 자세히 예제들어 설명 내부 순회($(Object.keys(x)).each(function(index, xx) { ... })): 각 객체(x)의 속성을 순회하면서 테이블의 헤더()와 데이터()를 생성한다. Object.ke.. 2023. 9. 13.
[Spring] Ajax 다양한 방법, @ResponseBody와 @RequestBody 컨트롤러 HTML 삽입 미리보기할 수 없는 소스 jsp, js HTML 삽입 미리보기할 수 없는 소스 다음과 같은 코드가 있다. EX1) 버튼을 클릭하게되면, console창에 'basicAjax1/ajaxData1' 이라는 문자열을 출력해보고자 한다. js에서 jQuery를 이용해 컨트롤러로 한번 거친다음, 컨트롤러에서 단순 문자 'basicAjax1/ajaxData1' 를 갖고 돌아온다. 이 예제가 Ajax 데이터를 뿌리는 가장 기초적인 방법이다. Ex2) 두번째 버튼을 클릭하게 되면, Map 형태로 Console에 데이터들이 나타난다. JS 데이터를 JSON 형태로 만들어 컨트롤러에 넘겨주는데, 이때 data를 JSON.stringify(jsonValue)를 지정해야한다. data: JSON.str.. 2023. 9. 13.
[Spring-Legacy] Ajax 사용시 with a status of 406 () 해결법 xml로 Ajax써서 Json으로 데이터를 다시 받기까지 고난에 고난의 연속이다. 드디어 해결이 됬다. 방법은 간단하다 porm.xml HTML 삽입 미리보기할 수 없는 소스 위 코드를 넣어주었다. servlet-context.xml 위 한줄을 추가해주면 DB에 저장된 데이터들이 아래 컨트롤러를 통해 성공적으로 Ajax로 넘어간걸 볼 수 있다. 컨트롤러 Ajax에서 갖고온 데이터 조회 후 조회된 결과값 반환한다. 2023. 9. 12.