반응형 OpenSource/Spring23 k8s환경에서 리소스 파일을 읽을 경우 유의 사항 오류발생오류는 Graphql Query Validation때문에 동작을 하지 않아서 schema.graphql을 다시 만드는 과정에서 오류가 발생했다. 로그를 확인해보니 resources아래의 파일을 못읽어오고 생성도 못하고 오류가 빵빵 터지는 상황이였다ㅋㅋ아래처럼 path를 잡아주니 로컬에서는 잘 돌아가지만 jar로 배포되는 Docker환경에서는 리소스파일이 jar파일에 포함이 됩니다.그래서 경로말고 클래스패스를 통해 리소스를 읽어야합니다.public GraphQLSchema getGraphQLSchema() throws IOException { // 스키마 파일 경로 String schemaFilePath = "src/main/resources/graphql/schema.graphql"; .. 2024. 9. 11. Spring Cloud Contract https://spring.io/projects/spring-cloud-contract Spring Cloud Contract is an umbrella project holding solutions that help users in successfully implementing the Consumer Driven Contracts approach 위의 내용은 spring.io에 spring cloud contract 설명을 한 내용인데 내용중에 Consumer Driven Contracts라는 내용이 나온다. 한글로 번역하면 "소비자 주도 계약" 이것은 무엇을 말하는걸까? 제공자(Producer) 가 소비자(Consumer)에 대한 연동을 확인하면서 모듈화된 시스템 구성 요소를 TEST하는데 사용되는 .. 2022. 8. 3. Jackson Annotation Examples @JsonInclude 어노테이션 속성을 제외 하는데 사용. ex) JSONObject _connects가 null인 경우에 제외! @JsonInclude(JsonInclude.Include.NON_NULL) private JSONObject _connects; @JsonIgnoreProperties 클래스 레벨의 어노테이션이고 무시할 속성을 표시 @JsonIgnoreProperties({ "id" }) public class BeanWithIgnore { public int id; public String name; } id는 무시되는걸 알수 있다. @Test public void whenSerializingUsingJsonIgnoreProperties_thenCorrect() throws JsonPr.. 2020. 11. 17. @Retryable 특정 Exception이 발생하면 일정 횟수만큼 재시도 할 수 있는 어노테이션이다. @EnableRetry 작성.(configuration 등) 재시도 하고 싶은 메소드에 @Retryable 작성. include : 특정 Exception이 발생할 때 retry exclude : 설정 된 Exception 재시도 제외 maxAttempts : 최대 재시도 횟수(default 3회) backoff : 재시도 pause 시간 ex) FailedStoreException 발생 시 최대 5번 시도! delay 10 @Retryable(value = { FailedStoreException.class }, maxAttempts = 5, backoff = @Backoff(delay = 10)) 참고 // // So.. 2020. 11. 17. @PreDestory란? 이 메소드는 소멸 메소드이며 이전 @PostConstruct와 상반된 개념이다. JSR-250 스펙에 따라 구현 되었다. (걍 자바에서 사용하려면 또는 springframework 2.5미만 버전에서는 javax.annotation 패키지 관련 라이브러리가 필요 함.) Springframework 2.5부터는 사용 가능! 현재 프로젝트에서는 @PostConstruct와 @PreDestory만 사용하고 있다. 하지만 찾아보니 여러가지 방법이 존재했다. 아래의 멋진 사이트를 참고하면 된다. 정리 및 공유 감사용! madplay.github.io/post/spring-bean-lifecycle-methods 그 중 흥미로운 테스트가 있었는데 바로 생성자/소멸자 호출 순서 테스트이다. import javax.a.. 2020. 11. 12. @PostConstruct란? @PostConstruct? javax.annotation Annotation Type PostConstruct @Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface PostConstruct The PostConstruct annotation is used on a method that needs to be executed after dependency injection is done to perform any initialization. This method MUST be invoked before the class is put into service. This annotation MUST be supported on.. 2020. 11. 10. Spring WebFlux toby님이 회사에 오셨다.스프링캠프 2017을 등록 못해서 못갔는데 다행히 좋은 강의를 들을수 있어서 좋았다. 강의자료 : Spring WebFlux 람다식 추가 : 구 Spring web reactive 용도 서비스간 호출이 많은 마이크로서비스 아키텍처에 적합.비동기 - 논블럭킹 개발방식.성능을 뛰어나게 만들겠다.기존 @MVC 방식, 새로운 방식서블릿 스택과 api에서 탈피블록킹, 논블록킹동기, 비동기와는 관점이 다름.내가 직접 제어할 수 없는 대상을 상대하는 방법대상이 제한적임IO멀티 쓰레드 동기화 함수형 스타일의 콜백 방식 스프링 웹 1. 요청 매핑 2. 요청 바인딩 3. 핸들러 실행 4. 핸들러 결과 처리(응답 생성) WebFlux Router Function - 1. 요청매핑 (.route().. 2017. 4. 26. ChainedTransactionManager를 이용한 글로벌트랜잭션 ChainedTransactionManager는 정말 획기적인 것 같다. 2pc의 글로벌트랜잭션을 하기 위하여 XA datasource를 이용하던지, 분산처리를 할 수 있는 오픈소스를 사용하여야만 하였다. 하지만 stand alone 에서도 또는 tomact에서! 아주 쉽게 2pc 처리를 할 수 가 있다. 즉, 글로벌 트랜잭션으로 묶을 수 가있다. 환경 : spring 3.1 tomcat 6.0 maven project maven을 사용하고 있다면 아래의 jar파일을 우선적으로 가져와야한다. # pom.xml 설정 dependencies에 아래와 같이 선언한다. org.springframework.data spring-data-neo4j-tx 2.1.0.RELEASE cglib cglib org.neo4.. 2013. 8. 22. Bug https://jira.springsource.org/browse/SPR-4122 찾아보자! 2013. 6. 21. @Vaild 처리 시 주의 할 사항!! Server Validation Check를 하는데 있어서..주의사항이 있다! ex) message= 부분에서 띄어쓰기를 하면..파싱을 못하는 듯 하다..ㅠ_ㅠ.. 잘된 예 @NotEmpty(message="메뉴명, CMN.I0000001.usr") 잘못된 예 @NotEmpty(message=" 메뉴명, CMN.I0000001.usr") // 앞에 공백이 있으면 안된다!! 끝~ 2013. 6. 21. Spring jmsTemplate 사용하기 2013/03/22 - [OpenSource/Spring] - HornetQ, JMS Client using Springframework and Maven 2013/03/22 - [Was/JBOSS] - JBoss의 미들웨어에 Hornetq를 설치 내가 했던 작업은 이러하다. 1. JBoss에 Hornetq를 설치(Hornetq install을 구해 ant로 빌드 ant -f build.xml 2. JBoss에 설치 된 Hornetq의 xml 설정을 추가(Queue, Topic, ConnectionFactory등) 3. Spring에 Context 파일을 추가(jms template사용) 이러한 작업을 통해서..sample소스까지도 무리 없이 돌아간다. 하지만..어떻게 돌아가는지 궁금하다...그래서 찾아.. 2013. 3. 26. HornetQ, JMS Client using Springframework and Maven spring에서 JMS > HornetQ를 쓸려고 찾아보다 보니.. http://www.javacodegeeks.com/2010/06/spring-3-hornetq-21-integration.html 요런 튜토리얼이 있었고 거기에는.. /lib/hornetq-bootstrap.jar /lib/hornetq-core.jar /lib/hornetq-jms.jar /lib/hornetq-logging.jar /lib/jnpserver.jar /lib/netty.jar 요런것들이 필요하다~~라고 되어있었지만..현재 프로젝트는 메이븐 프로젝트였다.. 다시 찾아봤더니..아래에 좋은 사이트를 발견하였다^^ 외국인 친구 땡큐! 펌] http://www.future-edge.nl/blog/hornetq-jms-clien.. 2013. 3. 22. @XMLAccessorType, @XMLRootElement @XMLAccessorType, @XMLRootElement에 대해서 알아보자!^-^good~ 아래를 읽기전에 JAXB?? 이거 모르시는 분은 아래 링크 꾹~~^-^good~! JAXB(Java Architecture for XML Binding)는 자바 클래스를 XML로 표현하는 자바 API이다. JAXB는 주로 2가지 기능이 있다. 자바 객체를 XML로 직렬화하는 것이고 반대로 XML에서 자바 객체로 역직렬화하는 것이다. 즉, JAXB는 메모리의 데이터를 XML 형식으로 변환하여 저장할 수 있고, 이 과정을 위해 프로그램의 각 클래스에서 XML을 읽고 저장하는 일을 구현해야 한다.위키백과 : http://ko.wikipedia.org/wiki/JAXB @XMLAccessorType javax.xml... 2013. 1. 21. spring bean 등록 방법 spring을 거의 대부분이 mvc 요즘은 @mvc를 사용 한다. @mvc는 어노테이션을 사용하는 mvc를 말한다. 그래서 인지 자바 stand alone 형태에서는 빈을 가지고 노는걸 잘 모르는 경우가 많다. 우선 방법은 spring mvc와 spring bean을 자바단에서 빈을 등록 시키고 DI 해주는게 있다는 것을 전제 하에 알아 보도록 하겠다. spring @mvc는 간단히 설명을 하면 was가 기동 되어질 때 bean이 등록 되어진다. 등록 되어진 bean을 와이어링(@Autowired)을 하여 연결 해준다. 아마도..C로 말하면 주소값을 가져오는 것 같다. 그래서 그 객체를 가지고 쓸 수 있도록 한다. 이제 이 페이지에서 알아 볼 것은 자바단에서 빈을 등록 시키고(context 호출) 사용하.. 2013. 1. 4. decompiler for eclipse 소스를 까볼려고했는데..xxx.class 파일이라서..보이지가 않는다..--;; 그래서 jad라는것이 떠올라 마켓이나 install and software를 통해 플러그인을 설치 하려고 했으나.. 링크가 끊겨있었다... 그래서! 다른 방법으로 플러그인을 설치 할려고 한다. [1] eclipse에 decompiler를 장착 해보자!ㅋ 아래의 페이지를 참고 하였다. http://www.mkyong.com/java/java-decompiler-plugin-for-eclipse/ Java Decompiler Plugin For Eclipse IDE 1) 다운로드 제드 Official Jad website seem not working any more, try mirror download links instea.. 2012. 11. 14. 어플리케이션 컨텍스트의 동작 원리 토비의 스프링 1장에서 가장 중요한 부분이라고 생각되어진다 이것을 바탕으로 Bean의 스코프와 빈의 동작원리를 파악하여 기존 자바, 스트럿츠 등의 다른 것들과의 객체 생성의 차이와 의존성 주입에 대해서 더욱 알 수가 있다. 언제 DI가 되어지고 어떤 방식으로 DI가 수행되어지냐? 앞으로 토비책이 나에게 더욱 흥미진진하게 알려줄것이다. 다음 스터디 3~5장을 기대하여 본다^-^! 안드로이드에서 작성 함^-^good~ 2012. 11. 5. [오류] Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 오류 Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 해결 방안 아래처럼 Connectors의 jar를 mysql홈페이지에가서 받는다. http://www.mysql.com/downloads/connector/j/ 그런 뒤에 이클립스에서 lib(jar)를 추가해준다. 2012. 10. 28. [Spring 환경 구축] step 02 - MySQL을 깔아보자~~~(Windows) 개발에 있어서 데이터베이스..정말 중요한!!~녀석이다. 그중에 MySQL이라는 녀석은..돈없는 일반 서민들에게 한줄기 빛이 아닐 수가 없다!!^-^ 왜냐면 꽁짜니깐! ^-^ 자~! 셋팅을 위해 아래의 주소로 간다. go~! : http://www.mysql.com/downloads/ 1) 아래의 그림처럼 떡~하니 다운로드를 하라고 나온다^-^good~ 2) 아래의 그림처럼 OS에 맞는 환경을 체크 한뒤에 다운로드를 한다! 인스톨러는 exe 확장자가 아닌 msi 확장자이다. 떱 클립하면 수행 된다고 한다. 3) 그 다음으로 역시나 정보를 적는 것이 나온다. 그러나 적지 않고 다운 받을 수 가 있다. 그러나..글쓴이는 아래의 사이트로 이동 하여 http://www.mysql.com/downloads/mysq.. 2012. 10. 28. [Spring 환경 구축] step 01 - 스프링 STS 를 깔아보자^-^ http://www.springsource.org/sts 로 가서 다운로드를 위해 옆의 URL로 이동한다. http://www.springsource.org/spring-tool-suite-download 다운로드를 위해 작성 해주는 부분이 있다. 데이터를 입력 후 Submit을 하면 아래 처럼 다운로드를 할 수 있는 페이지가 나온다. 글쓴이는 spring-tool-suite-3.1.0.RELEASE-e4.2-win32.zip를 다운 받았다^-^ 압축을 풀어보니..이름이 하도 길어서..실패(3)을 볼 수 있었다.. anyway, 압축을 풀고 난 모습이다. 여기에 보면 maven이라는 녀석도 볼 수 있고, vfabric~블라블라를 보면 톰캣 또한 볼 수가 있다. ^-^good~ sts-3.1.0.RELEA.. 2012. 10. 27. Spring Batch Spring Batch ?? 이것은 무엇인가?! 좋은 사이트 하나를 발견 하였다^-^good~ http://static.springsource.org/spring-batch/ 내용은 학습 한 뒤에 찬찬히 올려야겠다.^-^good~ 2012. 8. 24. Spring XML을 이용한 설정 스프링의 애플리케이션 컨텍스트는 XML에 담긴 DI정보를 활용 할 수 있다. DI 정보가 담긴 XML 파일은 를 루트 엘리먼트로 사용한다. 는 이름에서도 알 수 있듯이 여러개의 을 정의 할 수 있다. 아래의 그림처럼 http://acet.pe.kr/120 에서의 @configuration과 @bean을 각 @configuration을 @bean을 이라고 대응해서 생각하면 더 쉬울 것 이다. [참고 그림] 클래스 설정과 xml설정의 대응항목 자바 코드 설정정보 XML 설정정보 빈 설정파일 @Configuration 빈의 이름 @Bean methodName() ex) connectionMaker()메소드의 태그 전환 @Bean --------------------------------> id="connect.. 2012. 8. 16. 이전 1 2 다음 반응형