- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- CentOS
- 말줌임 CSS
- vc++
- 코드로 서버 재실행
- MFC
- 시간대 테이블생성
- 파티션 빠른 삭제
- c언어
- MySQL
- ffmpeg
- reactnative
- pid 찾아 kill
- kill -9
- Activity 전체화면
- MariaDB
- sql exception
- SQL
- CSS
- view 획득
- group by
- 터치좌표 view
- 가변영역 스크롤
- rn
- springboot 재가동
- 시간대별 통계
- Back 키 클릭 감지
- 피쉬랜드
- mybatis exception
- springboot
- 스크롤적용
목록SpringBoot , Thymeleaf (22)
개발은 하는건가..
springboot 에서 다른 서버로 http 요청이 필요할 때 RestTemplate 을 이용해서 간단하게 요청 및 응답 수신이 가능하다. 구현 함수 예) public ResponseEntity sendHttpPostMessage(String url, MultiValueMap param, Class tClass) { HttpHeaders httpHeaders = new HttpHeaders(); // 필요한 헤더 항목을 추가 httpHeaders.add("", ""); HttpEntity entity = new HttpEntity(param, httpHeaders); RestTemplate restTemplate = new RestTemplate(); return restTemplate.exchange..
Repository 에 다음과 같이 DataAccessException 을 throws 해준다. @Repository @Mapper public interface UserRepository { int insertUser(UserInfoDTO uid) throws DataAccessException; } 아래와 같이 서비스에서 Repository 함수를 호출하면서 Exception 을 catch 하여 처리해준다. @Service @RequiredArgsConstructor public class UserService { private final UserRepository _UserRepo; public int addUser(UserInfoDTO user) { int res = 0; try { user.se..
Springboot 서버 동작 환경을 DB 에 설정된 값을 반영하여 다시 실행해야 하는 경우가 필요할 때가 있는데 간단하게 구현하는 방법을 찾았다. 원문 사이트 : https://www.baeldung.com/java-restart-spring-boot-app Programmatically Restarting a Spring Boot Application | Baeldung Learn a few ways to restart a Spring Boot application with Java www.baeldung.com 1. Springboot Application 클래스에 아래와 같이 restart() 함수를 작성한다. @SpringBootApplication @MapperScan(basePackages ..
build.gradle 에 configurations 에 아래와 같이 추가 configurations { all { exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j' exclude group: 'ch.qos.logback', module: 'logback-classic' } } dependencies 에 아래와 같이 추가 implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.15.0' implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.15.0' im..
mybatis 의 mapper xml 에서 resultType, parameterType 지정 시 패키지 경로까지 쓰지 않고 클래스명만 입력하여 사용할 경우 Config 클래스의 SessionFactory.setTypeAliasesPackage() 로 경로를 지정하면 된다. setTypeAliasesPackage(com.svc.dto); => 이와 같이 사용할 수 있음. @Configuration public class MariaDBConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSe..
개발모드와 상용 모드에 따라 DB 주소, 파일 업로드 경로와 같이 다르게 설정되어야 할 경우 application.properties 를 구분해야 할 경우 다음과 같이 application.properties 에는 공통 속성만 정의하고 개발과 상용 application.properties 구분하여 관리한다. # application.properties 파일. # Profile (dev=development build, prod=product build) spring.profiles.active=dev # !! Version is automatically updated by gradle. info.build.version=1.0.0 # Common properties server.port=16300 ser..
springboot 로 tomcat 내장 형태의 jar 생성 후 윈도우용 application exe 형태의 파일로 만들어서 배포할 경우 유용한 방법입니다. 아래 주소에 접속하여 윈도우용 최신 Launch4J 를 다운로드 받아 설치 합니다. https://launch4j.sourceforge.net/ 실행 후 [Output file] 에는 exe 가 생성될 경로와 파일명을 지정하고 jar 에는 원본 jar 파일을 지정합니다. 필요에 따라 [icon], [change dir], [command line args] 를 설정합니다. 필요없을 경우 안해도 됩니다. header 탭에서 jar application 타입을 설정 합니다. springboot jar 이므로 [console] 를 선택합니다. JRE 탭에..
파일 다운로드 예) @GetMapping({"/api/photo/download"}) public void photoDownload(@RequestParam(required = false, defaultValue = "0") int paramKey, HttpServletResponse response) throws IOException { if (paramKey == 0) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return; } File photoFile = new File("파일경로/" + paramKey + ".jpg" ); if (photoFile.exists() == false) { response.setStatus(HttpServl..
사진 파일 업로드 예) @ResponseBody @PostMapping("/api/photo/upload") public String photoUpload(@RequestParam(required = false) MultipartFile uploadFile) throws IOException { String extFileName = uploadFile.getOriginalFilename().toUpperCase(); if (extFileName.endsWith("JPG") == false) { return "Jpg 파일만 지원합니다"; } int fileSize = uploadFile.getBytes().length; try { File dirFile = new File("파일 저장 경로"); if (d..
기본적으로 파일 업로드는 1MB 로 설정되어 있어 그 이상의 파일 업로드 시 아래와 같은 오류는 발생한다. The field file exceeds its maximum permitted size of 1048576 bytes. 아래와 같이 application.properties 에 최대 사이즈를 설정해준다. spring.servlet.multipart.max-file-size=4MB spring.servlet.multipart.max-request-size=4MB spring.servlet.multipart.enabled=true
Setting 에 들어가서 Build, exec.. > Build Tool > Gradle 의 아래 부분이 Gradle 로 되어 있다면 'IntelliJ IDEA' 로 변경해 준다. Lombok 을 사용중이라면 추가적으로 아래 부분이 체크한다.
Springboot 를 배포 후 종종 변경되는 일부 컨텐츠 파일만을 교체해야 할 경우 static 리소스 안에 뒀을 경우 다시 빌드 하고 배포를 해야하기 때문에 그런 파일들을 별로도 외부의 고정된 경로에 두어 파일만 교체 할 수 있도록 할 경우의 방법이다. 아래와 같이 임의 클래스를 생성후 @Configuration 어노테이션 추가 후 WebMvcConfigurer 인터페이스를 상속 후 ResourceHandler 와 ResourceLocations 를 등록해주면 된다. import java.util.concurrent.TimeUnit; @Configuration public class ResourceConfiguration implements WebMvcConfigurer { @Override publ..
IntelliJ 환경에서 self-signed 인증서를 이용한 https 적용 1. IntelliJ 툴에서 터미널로 진입하여 다음 커맨드 실행 (기본적으로 현재 프로젝트 root 로 시작함) keytool -genkey -alias linemac-ssl -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365 * -alias 명과 -keystore 파일명 -validity 기간은 원하는대로 설정한다. 2. 정상적으로 실행 시 아래와 같은 입력 항목이 나타나며 적절한 값을 입력한다. 3. 완료가 되면 해당 위치에 keystore 파일이 생성이 되며 이 파일을 resource 폴더로 이동 시킨다. 4. applicatio..
1. 카페24 가입 후 tomcat 호스팅 서비스를 신청한다. (서비스에서 제공하는 jdk, tomcat, db 버전들을 확인하여 개발 시 동작 가능한 코드로 제작) 2. DB, FTP, SSH 접속을 위한 계정 및 주소들을 확보한다. (필수는 아니지만 로컬 개발시 편의를 위해 외부 DB 접근 가능하도록 카페24 에서 설정한다.) 3. 로컬에서 springboot 프로젝트를 생성 후 필요 기능 구현 완료 후 War 파일로 생성한다. (반드시 "ROOT.war" 파일명으로 생성해야 한다.) 4. FTP 를 이용하여 카페24 서버에 ROOT.war 파일을 업로드한다. ( /카페24아이디/tomcat/webapps 디렉터리에 업로드하면 파일이 자동으로 압축해제되고 ROOT 디렉터리가 생성됨.) 5. SSH 프..
@Controller 에서 요청 별로 공통 속성을 추가할 경우 다음과 같이 @ControllerAdvice 클래스를 생성하여 @ControllerAdvice 어노테이션 추가 후 @ModelAttribute 를 추가하고 전달된 Model 파라메터에 필요한 속성들을 추가한다. @ControllerAdvice public class CommonControllerAdvice { @ModelAttribute public void handleRequest(HttpServletRequest request, Model model) { String requestURI = request.getRequestURI(); // 다음과 같은 식으로 공통으로 사용될 속성들을 추가한다. model.addAttribute("appVe..