한글 byte로 자르기(깨짐 없이)

쓸때마다 새로만드는 것 같아서 저장용


UTF-8일 경우

subStringBytes("블라블라블라라", 10, 3);

EUC-KR일 경우

subStringBytes("블라블라블라라", 10, 2);


public String subStringBytes(String str, int byteLength, int sizePerLetter) {
	int retLength = 0;
	int tempSize = 0;
	int asc;
	if (str == null || "".equals(str) || "null".equals(str)) {
		str = "";
	}

	int length = str.length();

	for (int i = 1; i <= length; i++) {
		asc = (int) str.charAt(i - 1);
		if (asc > 127) {
			if (byteLength >= tempSize + sizePerLetter) {
				tempSize += sizePerLetter;
				retLength++;
			}
		} else {
			if (byteLength > tempSize) {
				tempSize++;
				retLength++;
			}
		}
	}

	return str.substring(0, retLength);
}


0  Comments,   0  Trackbacks
댓글 쓰기
이클립스 플러그인(vrapper) 설정파일(vrapperrc)

2013/05/23 - [개발/JAVA] - [Eclipse] 이클립스에서 VI(VIM) 방식으로 코딩하기


아주 오래전에 올린 vrapper 플러그인 관련 글인데

.vrapperrc 설정파일이 너무 빈약해서 계속 업데이트 해왔지만 블로그로 다시 정리


" 기본설정

set ignorecase

set smartcase

set scrolloff=5

set tabstop=4

set shiftwidth=4

set expandtab

set hlsearch

set incsearch


" 입력모드 탈출(문자열에 jj있으면 탈출해버리니 주의!! 두번주의!!)

imap jj <ESC>


" 하단의 <leader>케릭터 매핑

let mapleader="g"


" ;입력시 :입력모드로 변경

nnoremap ; :

vnoremap ; :


" H와 L을 라인 앞으로 뒤로

noremap H ^

noremap L $


" gt탭좌측으로, gy탭우측으로(한 작업창안에서)

nnoremap <leader>y <C-W>gt

nnoremap <leader>t <C-W>gT


" 작업창 이동(창이 split되어 있을 경우 hjkl을 gh gj gk gl로 입력하여 이동

nnoremap <leader>h :wincmd h<CR>

nnoremap <leader>j :wincmd j<CR>

nnoremap <leader>k :wincmd k<CR>

nnoremap <leader>l :wincmd l<CR>

0  Comments,   0  Trackbacks
댓글 쓰기
스프링 부트(spring boot)로 톰캣에서 실행하기(이클립스)

스프링 부트로 개발된 웹 어플리케이션을 톰캣에 올리는 방법입니다.

이클립스에서 단독 실행 모드와 톰캣 배포 방식 두가지 다 가능하기 때문에

개발할떄는 단독으로 띄워서 개발을 하고 배포할때만 톰캣을 띄워서 쉽게 배포를 하셔도 됩니다.


pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

 

  <groupId>net.donnert</groupId>

  <artifactId>spring.boot.web</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

 

  <name>spring.boot.web</name>

  <url>http://maven.apache.org</url>

 

  <properties>

    <project.build.sourceencoding>UTF-8</project.build.sourceencoding>

    <java.version>1.8</java.version>

  </properties>

  <parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>1.4.0.RELEASE</version>

  </parent>

 

  <dependencies>

    <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

    <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-tomcat</artifactId>

      <scope>provided</scope>

    </dependency>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <scope>test</scope>

    </dependency>

  </dependencies>

</project>


기존에 웹에서 사용하던 파일과 동일합니다.

추가적으로 spring-boot-starter-tomcat을 넣어줍니다.


Application.java

package net.donnert.spring.boot.web;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(Application.class);
	}
	
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
}

SpringBootServletInitializer를 상속받으셔야 톰캣 기동 시 정상적으로 스프링 모듈이 동작합니다.

그리고 configure를 오버라이드 해주셔야 서블릿 컨테이너 기동 시 스프링 설정을 적용시켜줍니다.


TestController.java

package net.donnert.spring.boot.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
	@RequestMapping("test")
	public String test() {
		return "This is spring";
	}
}

그냥 테스트용 컨트롤러이니다.


테스트

Application을 실행시켜줍니다. 스프링 부트 어플리케이션이 실행이 됩니다.

http://localhost:8080/test를 실행해보시면 This is spring이 찍히는 것을 볼 수 있습니다.


톰캣에 올리기

이미 Application에 SpringBootServletInitializer를 상속받아놨기 때문에 별다른 설정은 없습니다.

톰캣에 올리기 위해 Dynamic Web Module 프로젝트로 설정해줍니다.

(프로젝트 우클릭-Properties-Project Facets-Dynamic Web Module 체크)

설정된 톰캣에 우클릭을 해서 Add and Remove를 선택하면 스프링 어플리케이션이 보일겁니다.

(톰캣 설정은 따로 안다루겠습니다.)

추가 후 모듈의 Path를 /spring로 변경합니다.

톰캣 스타트 후 http://localhost:8080/spring/test를 때려보시면 This is spring이 보입니다.



0  Comments,   0  Trackbacks
댓글 쓰기