Java 관련: 133개의 글
화면을 수정했는데, 클라이언트의 브라우져에 캐시가 남아서 이전 화면이 나오는 경우가 있다. 직접 브라우져 설정 들어가서 캐시를 지워달라고 요청 할 수도 있지만, 그게 한두번이 아니게 되니 코드에서 캐시를 지울수 없는지 찾아보았다. 이럴수가... 크게 어렵지도 않지만, html한정으로 이게 꼭 필요한 화면이 아니면 아래 설정은 가급적 안 하는게 좋을 것 같다. HTML 메타태그 이용하기 JSP, Java 사용시 자바 코드 지만 html과 같음. response.setHeader( "Pragma", "no-cache" ); response.setDateHeader( "Expires", -1 ); response.setHeader( "Cache-Control", "no-cache" ); JS, CSS 파일 캐..
jstl 내장함수 JSTL functions은 JSTL에서 제공하는 각종 함수를 사용해서 문자열이나, 컬렉션들을 처리함. fn태그는 단독으로 사용할 수 없고 EL 표현식 내에서 사용해야함. like ${fn:length(...)} jsp 페이지 시작점에 다음 태그로 선언 해줘야 사용 할 수 있음. boolean contains(String sting, String substring) string이 substring을 포함하면 return true. boolean containsIgnoreCase(String string, String substring) 대소문자에 관계없이, string이 substring을 포함하면 return true. ${fn:contains("helloworld", "world")..
[JSP, JSTL] fn function 정리 jstl function (jstl fn) 정리 jsp 파일 최 생단에 다음과 같이 jstl functions를 사용하겠다고 선언 해야 함. 함수들은 단독으로 사용할 수 없고 EL 표현식과 함께 사용해야 함. ${fn:length(list)} ${fn:contains(str, str)} fn:contains(string, substr) string이 substr을 포함하면 return true fn:containsIgnoreCase(string, substr) 대소문자 관계없이 string이 substr을 포함하면 return true fn:startsWith(string, prefix) string이 prefix로 시작하면 return True fn:en..
[JSP, JSTL] forEach 잘 사용하기 Spring 개발을 하다 보면 jstl 의 forEach 를 많이 사용하게 된다. 간단하지만 varStatus 속성 사용을 잘 하면 보다 편하게 개발할 수 있는것 같아서 남겨본다. current (현재 객체) : ${i.current} index (0부터의 순서) : ${i.index} count (1부터의 순서) : ${i.count} first (루프의 처음인가) : ${i.first} last (루프의 마지막인가) : ${i.last} begin (루프의 시작값) : ${i.begin} end (끝값) : ${i.end} step (증가값) : ${i.step} 출처 : https://jeaha.dev/70
메이븐에서 실행가능한 Jar생성을 위한 설정 org.apache.maven.plugins maven-assembly-plugin true was.main.main jar-with-dependencies make-assembly package single 참고 http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven 출처: https://happygrammer.tistory.com/20?category=869806 [happygrammer]
[WARNING] File encoding has not been set, using platform encoding MS949, i.e. build is platform dependent! 해결방법 아래 내용추가 utf-8 utf-8 출처: https://happygrammer.tistory.com/19?category=869806 [happygrammer]
Maven vs Gradle 스프링 기반의 프로젝트를 시작하면서 Maven을 처음 접했다. Ant를 사용한적도 없었고 의존성 관리와 빌드 스크립트에 대한 지식도 없었기에 이런게 있나보다 하고 사용했었다. Maven 책을 한권 보고나서야 프로젝트 구성, 빌드툴이 무었인지 이해할 수 있었고, 편리한 의존성 관리에 감사하며 부족함을 느끼지 못했다. 하지만 프로젝트의 단위가 커지면서 빌드와 테스트에 소요되는 시간이 길어졌고, 여러 모듈에서 설정을 상속받기 시작하면서 Gradle이라는 녀석이 계속 눈에 뛰었다. Gradle이 Maven의 단점을 보완해주고 사용해본 사람들이 좋다고들 하니 Maven이랑 비교해서 얼마나 좋은지 알아보려 한다. Maven Apache의 이름 아래 2004년 출시 Ant를 사용하던 개발..
쿼리 메소드는 스프링 데이터 JPA의 핵심적인 기능중 하나로 메소드 이름으로 쿼리를 생성할 수 있다는 장점이 있다. 메소드 이름으로 쿼리를 생성을 위해 인터페이스에서 사용할 사용자 쿼리 메소드를 정의해 준다. EmailAddress와 LastName의 칼럼을 where 절의 조건으로 질의하는 사용자 쿼리 메소드는 인터페이스에 다음과 같이 선언해 줄 수 있다. public interface UserRepository extends Repository { List findByEmailAddressAndLastname(String emailAddress, String lastname); } 위와 같이 인터페이스에서 먼저 사용자 쿼리 메서드를 정의해준 다음 인터페이스를 구현하는 서비스에서 구체적인 비즈니스 ..
pom.xml에 3.6.3 버전의 Querydsl JPA Support모듈을 추가한다. com.mysema.querydsl querydsl-jpa 3.6.3 com.mysema.querydsl querydsl-apt 3.6.3 provided 이어서 plugin을 추가하는데 빌드시 queryDsl 기반 코드가 생성돼야 하므로 출력 디렉터리 정보를 넣어 두어야한다. com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.mysema.query.apt.jpa.JPAAnnotationProcessor 플러그인을 추가할때 부분에서 에러가 나타날 수 있는데 문제는 다음과 동일. 해결 방법을 참고해 해결해야 한다. 스택오버플..
스프링 데이터 JPA는 스프링프레임워크에서 JPA의 사용을 보다 쉽게 할 수 있도록 도와주는 프로젝트입니다. 스프링 데이터 JPA는 리포지토리 개발시 인터페이스를 상속 하는 것 만으로도 구현 클래스 없이도 데이터 접근을 가능하게 합니다. 보통 CRUD 메소드는 JpaRepository 인터페이스가 공통적으로 제공하는데 findByUserid()와 같은 메소드와 같이 인터페이스에 정의되어 있지 않은 메소드가 있다고 해 보겠습니다. UserRepository.findByUserid() 놀랍게도, 스프링 데이터 JPA는 위 메소드 이름을 분석해 적절한 JPQL 쿼리 문장으로 만들어 줍니다. select m from User u where userid =: userid 이어서 스프링 데이터 설정을 진행하겠습니다..