egov 3.7 에서 개발/운영/배포 설정파일 분리 운영하기 egov 3.7에서 설정파일 분리하기. 1. DB 정보는 WAS 에서만 설정(JNDI 사용) JNDI 란? 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup)하기 위한 자바 API다. tomcat의 server.xml 설정 추가 tomcat의 context.xml 설정 추가 애플리케이션에 DB정보 적용 애플리케이션의 context-datasource.xml 내용 추가 애플리케이션의 web.xml 내용 추가 PMS DB Connection jdbc/mysqldb javax.sql.DataSource Container 2.개발 & 운영별 프로퍼티 분리 배포 서버별로 프로퍼티 생성 및 빈 생성 context-local.xml, context-dev.xml, contex.. SPRING/스프링 2년 전
스프링 파라미터 정리 SPRING 파라미터 정리 HttpServletRequest HttpServletResponse 서블릿 오브젝트들로 서블릿 정보를 담고있다. ServletRequest, ServletResponse 타입도 사용가능 HttpSession -HttpServletRequest로도 가져올수 있으며 -Http 세션만 필요한 경우 선언하여 사용 -서버에 따라 멀티스레드 환경에서 안정성이 보장되지 않기에 서버에 상관없이 안전하게 사용하려면 synchronizedOnSession 프로퍼티를 true로 설정하자 @PathVariable -URL에 {}로 들어가는 패스 변수이다. -이해하기 쉽고 보기 좋은 URL을 만들 수 있다. -타입을 명확히 명시해야한다. 타입이 불일치 할 경우 클라이언트에 HTTP 400 -Bad .. SPRING/스프링 3년 전
스프링 JDK 버전 호환 Spring - JDK 간 버전 호환 Spring Framework 5.3.x with JDK 8 - 19 (expected) Spring Framework 5.2.x with JDK 8 - 15 Spring Framework 5.1.x with JDK 8 - 12 Spring Framework 5.0.x with JDK 8 - 10 Spring Framework 4.3.x with JDK 6 - 8 (its official EOL(end-of-life)) Spring Boot - JDK 간 버전 호환 Spring Boot 2.3↑ with Java 9 and above Spring Boot 2.1↓ with Java 8 - 11 SPRING/스프링 3년 전
log4j2 설정 기록 name = PropertiesConfig property.filename = logs/example.log appenders = console, rolling appender.console.type = Console appender.console.name = STDOUT appender.console.layout.type = PatternLayout appender.console.layout.pattern = %d{dd.MM.yyyy HH:mm:ss,SSS}[%t] %-5p %c{1}:%L - %m%n appender.rolling.type = RollingFile appender.rolling.name = roll appender.rolling.fileName = ${filename} appender.. SPRING/스프링 3년 전
정리 @ModelAttribute, @ResponseBody에 관한 좋은 글들 https://velog.io/@cms02/Spring-RequestBody https://jojoldu.tistory.com/361 SpringBoot에서 날짜 타입 JSON 변환에 대한 오해 풀기 안녕하세요? 이번 시간엔 Spring과 JSON에 대해 정리해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후 jojoldu.tistory.com https://blog.naver.com/PostView.nhn?blogId=writer0713&logNo=221853596497&redirect=Dlog&widgetTypeCall=tr.. SPRING/스프링 3년 전
[스프링] HTML 특수문자 JSON 데이터 파싱문제 발생 "단어" : "단어" 현재 나는 특정 API를 이용하고있어서 서버에서 DB데이터를 JSON 형태로 뿌려줘야한다, 그러나 VIEW 단에서 JSON 형식으로 데이터를 작성해서 DB에 등록시켜준다. 그리고 저장된 DB내용을 VIEW에 뿌려줄때 서버에서 JSON 형식으로 변환하는 과정을 거치게 된다. 그런데 DB에 저장된 내용은 "단어":"단어" 이다 보니 JSOB 변환 과정에서 깨져?버리는 문제가 발생 하였다. 이는 HTML의 데이터 입력과정에서 특수문자 처리를 안해줬기 때문에 발생한 문제라고 생각한다. 아래의 특수문자들을 숫자표현 또는 문자표현 방식으로 변환하여 DB에 저장하는 방법이 필요할꺼같다. 1.view 처리할때 view에서 서버에 던질때 StringEscapeUtils.unescapeHtml("디코.. SPRING/스프링 3년 전
스프링 mapper vs dao 차이 https://twofootdog.github.io/Spring-DAO%EC%99%80-Mapper%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90/ SPRING/스프링 3년 전
ajax https://blog.naver.com/PostView.nhn?blogId=writer0713&logNo=221853596497&redirect=Dlog&widgetTypeCall=true&directAccess=false [Spring] Post 요청과 Content-Type의 관계 도움이 되시면 '광고'를 한번씩 눌러시면 감사하겠습니다 :) 실무에서 RestAPI를 만들면서 ... blog.naver.com https://yejip.com/web/2020-12-14-ajax1/ SPRING/스프링 4년 전
[스프링]25. LIST<Map<String,Object>> 스크립트 JSON으로 파싱하기 //ajax의 select 박스로 안의 option값 넘기는 조건 @RequestMapping(value="myjob", method=RequestMethod.POST) @ResponseBody public List myjob(String userid){ JSONArray jsonArr= new JSONArray(); System.out.println(userid); List vo=wbsService.getMyJobById(userid); System.out.println("post 컨트롤러에서 일단 데이터 출력: "+vo); for(HashMapmap: vo){ jsonArr.add(convertMapToJson(map)); } System.out.println("json 배열 출력: "+jsonArr.. SPRING/스프링 4년 전
[스프링]24. 프로퍼티(properties) 값 가져와서 쓰기. 스프링을 사용하다 감추고 싶은 정보들이 있을것이다. DB 아이디 및 비밀번호, 이메일 등.... 필자 같은경우 실제 아이디 및 비밀번호를 유출해본 경험이 있으므로.... 소스 코드 내에 직접적인 값 명시는 피해보도록 하자. 프로퍼티에 민간한 값들을 저장하여 따로 관리하고 직접 값이 아닌 래퍼런스 형식의 값으로 사용하여 보안화? 시켜보자 간단히 계정정보를 가져다 쓰는 방식을 하겠다. DB 및 다른 정보들도 이를 활용하면된다. util 프로퍼티 JAVA, JSP, XML 모든 곳에서 value 값을 호출할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 true true true * true javax.net.ssl.SSLSocketFactor.. SPRING/스프링 4년 전
[스프링]23. 대댓글 구현(스프링 레거시) 고민 댓글에 댓글을 추가를 할수있는 기능을 생각해야한다. 댓글을 추가할땐 부모 댓글이 있을것이고 추가되어지는것은 자식댓글일 것이다. 추가되는 댓글은 꼬리에 꼬리를 물어 지속적인 계층형으로 표현해야 할것이며, 이 부분에 있어서는 무제한으로 댓글을 달수있어버리면 서버에 과부화를 줄수 있기때문에 어느정도 제한도 필요하다. 페이징의 수정도 해야한다. 기존에 댓글만 달 수 있는 기능에서 10개씩 페이징을 진행하였으나 대댓글로 인해 한 페이지에서 보여줄 수 있는 댓글 수가 늘어나기 때문에 부모 댓글을 기준으로 10개를 할것인지? 대댓글까지 포함한 수를 페이징 할 것인지 결정해야한다. 설계 현재 댓글은 내림차순으로 생성되며 최신 댓글이 맨 위로 올라가는 상황이다. 허나 대댓글을 작성하면 보통 최신 작성 글이 아래로 .. SPRING/스프링 4년 전
[스프링]22. 시큐리티로 로그인된 사용자의 정보 수정하기 ㅎ현재 시큐리티로 로그인 된 상태이다. 1.메인페이지 에서 사용자 수정폼으로의 이동 메인페이지 일부. 1 2 3 4 5 6 7 8 9 10 11 12 13 http://www.springframework.org/security/tags" prefix="sec" %> 마이프로필 로그아웃 로그인 Colored by Color Scripter cs 로그인 된 사용자는 [마이프로필], [로그아웃] 이라는 메뉴만 보이게 sec 태그 라이브러리를 사용하여 설정해둔 상태이며 마이 프로필을 누르게 되면 회원정보를 수정할 수 있는 폼으로 이동하게 된다. 2.사용자 폼에서의 유저정보 받기 마이프로필.jsp 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.. SPRING/스프링 4년 전
[스프링]21. 로그인된 사용자의 정보 출력하기(feat.스프링 시큐리티) 스프링 시큐리티로 로그인된 사용자의 정보를 수정하기 위해선 사용자의 정보를 불러올 방법이 필요하다! Principal 객체를 이용하여 사용자의 정보를 불러와보자! 스프링 시큐리티의 일부 내용 Principal로 사용자 정보에 접근할 수 있다. memberController.java 1 2 3 4 5 6 7 8 9 10 11 @PreAuthorize("isAuthenticated()") //마이프로필 창으로 이동 @GetMapping("myProfile") public void profile(Principal principal,Model model) { log.info("마이프로필 창으로 이동"); log.info("유저아이디: "+principal.getName()); String userid=princ.. SPRING/스프링 4년 전
[스프링]20. summernote를 이용한 글쓰기 폼 구현 1.summernote light 버전 다운 https://summernote.org/ Summernote - Super Simple WYSIWYG editor Super Simple WYSIWYG Editor on Bootstrap Summernote is a JavaScript library that helps you create WYSIWYG editors online. summernote.org 2.개인 프로젝트에 디렉토리 만들기 나는 resources 파일에 4개의 파일들을 위치 시켰다, 3.글쓰기.jsp 에서 다운파일 적용 Text area textarea 태그의 클래스에 "summernote" 를 지정한다. 그리고 해당 구문을 선언해주자. 4.적용 확인!!! SPRING/스프링 4년 전
[스프링]19. ajax 파일 전송에 대한 이해(1) 파일 전송을 위한 의존성 설정 pom.xml javax.servlet javax.servlet-api 3.1.0 서블릿 3.0이상 버전 설정 web.xml //버전변경 contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 C:\\upload\\temp 20971520 41943040 20971520 appServlet / encodi.. SPRING/스프링 4년 전
[스프링] 18. 자바 코드 또는 XML 설정 다양한 설정 형식 지원 - 자바 코드, XML 아래는 같은 설정이다. *자바 bean 설정 @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } *xml 설정 SPRING/스프링 4년 전
[스프링]17. 스프링 컨테이너에 대하여 // 스프링 빈 조회 TEST //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다. 스프링 컨테이너는 1.XML을 기반으로 만들 수 있고, 2.애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig 를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것 이다. 자바 설정 클래스를 기반으로 스프링 컨테이너( ApplicationContext )를 만들어보자. 참고: 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory ,.. SPRING/스프링 4년 전
[스프링] 16. Log4j 로그레벨 로그레벨은 TRACE > DEBUG > INFO > WARN > ERROR > FATAL 순 입니다. # Log Level # TRACE : 추적 레벨은 Debug보다 좀더 상세한 정보를 나타냄 # DEBUG : 프로그램을 디버깅하기 위한 정보 지정 # INFO : 상태변경과 같은 정보성 메시지를 나타냄 # WARN : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타냄 # ERROR : 요청을 처리하는 중 문제가 발생한 경우 # FATAL : 아주 심각한 에러가 발생한 상태, 시스템적으로 심각한 문제가 발생해서 어플리케이션 작동이 불가능할 경우 출처: https://mdj1234.tistory.com/63 SPRING/스프링 4년 전