일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Multi DataSource
- ServletContextInitializer
- spring boot 1.3
- spring cloud config
- 인텔리J
- elasticache
- 스프링 부트
- spring test mvc
- spring boot devtools
- mybatis
- Spring Boot
- spring
- @MVC
- devtools
- spring camp
- 데브툴즈
- Fiilter
- spring security
- 스프링
- KSUG
- 스프링시큐리티
- spring boot mybatis
- spring-mybatis
- apache thrift
- spring cloud
- OAuth 2.0
- Spring Security OAuth
- OAuth2.0
- WebApplicationInitializer
- Spring MVC
- Today
- Total
목록개발이야기/스프링(Spring) (21)
홍이의 개발 노트
Spring camp 발표자료 from SuHong Lee
Spring test mvc 발표자료 from SuHong Lee 예전에 발표한 자료이제야 올린다.
Mongo DB에 인덱스를 추가하기 위해서는 직접 콘솔에서 명령을 쳐도 되지만 나중에 배포시 자동화를 위해 서버가 시작시 인덱스를 추가하기 위해 소스를 찾아보았다.현재 Spring Data mongoDB를 사용하고 있었으므로 그 부분 문서를 찾아보니 http://static.springsource.org/spring-data/data-document/docs/current/reference/html/#d0e2730mongoTemplate.ensureIndex(new Index().on("name",Order.ASCENDING), Person.class); 이렇게 인덱스를 추가하라고 적혀 있었다. 문제는 MongoTemplate에 아무리 찾아봐도 저 메소드가 존재하지 않는 것이었다.현재 사용하고 있는 Sp..
요즘 ORM으로는 하이버네이트, JPA등 많이 사용하고 있으나, 역시 SI 쪽은 mybatis(ibatis)를 많이 사용된다. 문제는 mybatis는 xml로 sql을 관리하고 있는데 보통 조금 바꿀때 마다 서버를 재구동 시켜야 되는 문제가 된다. 시스템이 클 경우 재시작시 오랜 시간 걸리고 session 사용시 또 로그인을 해야 하는듯 개발의 흐름이 끊어지는 문제가 많이 발생한다. 예전에 ibatis를 사용 했을시에도 그런 부분이 많이 불편했었는데, 예전 대우정보시스템의 JCF 프레임워크에서 사용된다고 Refresh 되는 클래스 소스가 한번 공개 된적이 있었다. ( 몇년전인지 기억은 안나지만, 당시 인터넷 검색으로 찾았었다. ) 그것이 버전이 문제인지 바로 사용이 안되어서 커스터마이징하고 사용을 잘사용..
기존 Spring MVC 3.0.x의 태그의 전략은 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMappingorg.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter클래스를 사용하여 맵핑 및 여러 클래스를 추가하여 구성이 되었다. 하지만 이번 3.1 버전이 나오며 이야기가 달라졌다.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappingorg.springframework.web.servlet.mvc.method.annotation.RequestMappi..
보통 DB에서 칼럼값을 가져 오게 되면 언더바(_)가 붙어 있는 문자열을 가져 오게 된다.xxx_name, yyy_code 이런식으로 가져오게되는 경우가 많이 생긴다.이것을 camel case 즉 낙타등 표기법으로 변경해서 가져오면 java에서 사용하기 적절한 문자열이 된다. xxx_name -> xxxName yyy_code -> yyyCode 만들어 쓸까 고민했지만 혹시나 해서 찾아보니 역시나 Spring에서는 이렇게 변경해주는 함수가 존재한다. org.springframework.jdbc.support 이 패키지에서 JdbcUtils 클래스안에 이 함수가 존재한다.JdbcUtils.convertUnderscoreNameToPropertyName(String name) 이렇게 호출을 하며 반환된 값은..
MappingJacksonJsonView 를 사용해 JSON 결과를 보이도록 하다 보면 결과 값에 ModelKey 혹은 속성명이 같이 결과 같에 나오게 된다. 위 의 그림처럼 저런 result( 직접 지정해둔 modelKey명 )라고 값이 붙어서 json 결과 값이 나오게 된다. 이부분을 제외 시키는 방법을 찾아보니 MappingJacksonJsonView 설정 하는 부분에서 extractValueFromSingleKeyModel 속성 부분을 true 라고 해주면 앞에 modelKey값 또는 속성 나오는 부분을 제외 하고 json 데이터로 나온다. 이렇게 깔끔하게 나오게 된다. 참고1. modelKey를 정해주는 이유는 model에 다른 값이 들어 있을 경우 그것 까지 json 값으로 바꿔 줄 수 있으니..
저번에 포스팅 했던 AnnotationMethodHandlerAdapter.class 에서 있는 내용이다 @SuppressWarnings("unchecked") public ModelAndView getModelAndView(Method handlerMethod, Class handlerType, Object returnValue, ExtendedModelMap implicitModel, ServletWebRequest webRequest) throws Exception { // 메소드가 @ResponseStatus 어노 테이션을 찾는다 ResponseStatus responseStatusAnn = AnnotationUtils.findAnnotation(handlerMethod, ResponseStatu..
스프링 3.1 업데이트 정보를 계속 보기 위해 소스 레파지토리를 찾았다. https://src.springsource.org/svn/spring-framework/ 이 주소로 SVN에 등록하여 소스를 확인 해보면 된다. Github로 변경 되었다.알다시피 http://github.com/SpringSource/spring-framework. 주소로 이동 되었으며 $ git clone http://github.com/SpringSource/spring-framework 형태로 소스를 받을 수 있다.
@MVC가 어떻게 움직이는지 궁금 해서 소스를 보고 있는 중에 매개변수 타입에 따라 리턴 되는 객체를 컨트롤 하는 부분을 찾았다. AnnotationMethodHandlerAdapter 클래스 파일 안에 ServletHandlerMethodInvoker 이라는 클래스 안에서 resolveStandardArgument의 이 메소드 안에서 이부분을 찾았다. @Override protected Object resolveStandardArgument(Class parameterType, NativeWebRequest webRequest) throws Exception { HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.cla..