개발과 운영을 분리하는 방법 입니다.

 

기본적으로 스프링 부트의 설정파일은

 

src/main/resources/application.properties 의 설정 파일을 통해서 하게 되는데요

 

먼저 개발과 운영 데이터 베이스가 다르기 때문에 데이터 베이스와 로그 수준만 분리해 주도록 하겠습니다.

 

 

개발 / 운영 분리 구조

위의 사진처럼 application-dev.properties , application-prod.properties 각 파일을 생성을해서

개발시에는 첫번째파일을 운영시에는 두번째 파일을 읽어서 데이터 베이스를 연결하도록 구성하였습니다.

 

application-dev.properties
application-prod.properties

각 설정 파일은 디비 정보와 로그 레벨을 담고 있습니다. 

 

마지막으로 해당 파일들을 실행해줄 설정을 해줘야 합니다.

 

Run < Run Configurations 에 들어가서 Spring boot Profile 을 dev로 설정해 줍니다.

 

프로젝트를 실행할때 dev를 실행하기때문에 dev 설정파일을 자동으로 읽어 dev 디비를 연결하게 됩니다.

 

그럼 운영의 경우를 설명 하겠습니다.

 

운영의 경우 톰캣을 사용하고 있는데 톰캣의 경우

 

tomcat/bin 경로로 이동하여 setenv.sh 파일을 수정해 줍니다.

 

> vi setenv.sh

i를 눌러 편집

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod"

esc 누른 후 wq 엔터로 저장 

 

이렇게 되면 톰캣 실행시 prod 가 활성화 되어 운영 디비와 연결됩니다.

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

1. login (remember me)

curl -i -X POST -d id=id -d password-1234 -c cookies.txt http://localhost:8080/login/loginProcessing

 

curl -i -X POST -d id="아이디" -d password-비번 -c cookies.txt http://localhost:8080/"스프링시큐리티 로그인처리 설정한 url 입력"

 

2. curl -i -X GET -b cookes.txt localhost:8080/file/1

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

스프링부트에서 정적자원 버저닝 방법은 두가지가 있다.

application.properties 파일을 통해서 간단히 설정할 수 있는데 그건 thymeleaf만 해당하는거 같다.. 

나는 jsp를 사용하는데 jsp의 경우는 추가로 bean을 등록해줘야 사용가능하다(이거땜에 3주는 허비한듯)

 

1. application.properties

# 1. ex) /css/spring-2a2d595e6ed9a0b24f027f2b63b134d6.css
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
# 2. ex) /v12/js/lib/mymodule.js
spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.version=v12
spring.resources.chain.strategy.fixed.paths=/**

2-1. jsp (jstl)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="<c:url value='/static/images/test.css'/>"></link>
<link rel="stylesheet" type="text/css" href="<spring:url value='/static/images/test.css'/>"></link>
</head>
<body>
	<h2>static resources caching test</h2>
	<input type="text" value="${message}">
</body>
</html>

2-2.html (thymeleaf)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" th:href="@{/static/images/test.css}"></link>
</head>
<body>
	<h2>test html</h2>
	<span th:text="${message}"></span>
</body>
</html>

 

3. bean 등록( thymeleaf의 경우 생략 해도 동작 가능 확인)

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter;

@Configuration
public class WebConfig{
	
	@Bean
    public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {
        return new ResourceUrlEncodingFilter();
    } 

}

 

결과

1번 설정

 

2번 설정

 

 

 

 

 

 

 

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

 

저의 경우 로그인 처리를 /login/loginProcessing 에서 처리하게 해줬으므로 해당 url과 아이디 패스워드의 경우

hrId, passwrod 값을 넣어주면 됩니다.

 

curl -i -X POST -d hrId=아이디 -d password=비밀번호 -c cookies.txt http://localhost:8080/login/loginProcessing

 

다음 저장한 쿠키를 이용하여 원하는 페이지에 접근하면 됩니다

 

curl -i -X GET -b cookies.txt localhost:8080/hr/481

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요


파비콘

(영어: favicon, 'favorites + icon') 또는 패비콘이란 인터넷 웹 브라우저의 주소창에 표시되는 웹사이트나 웹페이지를 대표하는 아이콘이다.


- 파비콘 설정


스프링 부트의 기본 파비콘인 나뭇잎 모양을 원하는 파비콘으로 변경



저의 경우 팔근육 아이콘 파일을 검색하여 받았으나


원하는 이미지를 파비콘으로 삽입 하기 위해서는 ICO파일로 변환이 필요합니다.





http://icoconvert.com/


웹에서 간단히 ICO파일로 변환 가능한 사이트 입니다. 


원하는 이미지를 선택하여 업로드 하면 ICO파일로 받을 수 있습니다.



이제 원하는 파비콘ICO 파일을 위의 경로


src > main > resources > static 경로에 favicon이란 이름으로 놓고 서버를 재시작 하면



원하는 파비콘으로 변경 됩니다. 




- banner 바꾸기


스프링 부트 배너란



서버 시작시에 나타나는 콘솔창의 저 부분이 배너로 들어가게 됩니다.


원하시는 문구를 그냥 텍스트로 넣어도 되지만


멋진 배너를 변경하기 위해서는 먼저 TEXT를 ASCII 로 변환이 필요합니다.



ASCII 변환 사이트

http://patorjk.com/software/taag/


원하는 문구를 입력하고 font등 원하는 옵션으로 변경하여 


페이지 하단에 SELECT & COPY 버튼 눌러주세요



src > main > resources 경로에 banner.txt 파일 생성해 주시고요


(해당 경로에 new > file 생성하시고 이름 입력에 banner.txt로 파일을 생성하시면 됩니다.)


해당 파일에 이제 아까 복사한 텍스트를 붙여 넣으면



위처럼 들어갑니다. 이제 저장하고 서버를 올리면



콘솔창에 이렇게 올라오게 됩니다.

Posted by 건강코더 트랙백 0 : 댓글 4

댓글을 달아 주세요

  1. addr | edit/del | reply 2017.12.21 13:30

    비밀댓글입니다

  2. addr | edit/del | reply 2017.12.22 22:55

    비밀댓글입니다

  3. addr | edit/del | reply 2017.12.23 12:29

    비밀댓글입니다

  4. addr | edit/del | reply 진영진 2017.12.24 01:30

    dudwlscod12345@naver.com 티스토리 초대장 간곡히 부탁드립니다 ㅜ

Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map '~~~Controller' method


이런 오류일 때는 



@RequestMapping 


값이 중복일 경우 나타나는 오류로 방금 작성한 메소드의 값을 다른 값으로 변경하면 오류 해결!

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

STS에서는 이클립스와 다르게 .sql을 생성 할 수가 없다.


토드 나 다른 것들을 사용할 수도 있지만 STS에서도 똑같이 할 수 있습니다.


1. Market Place > SQL Development Tools 다운




2. dependencies connector 추가 - build.gradle (mysql)


compile 'mysql:mysql-connector-java:6.0.6'


Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

Spring Boot 내장 톰캣 사용 하여 jsp파일 고치더라고 항상 재기동을 해줘야 하는데 이를 해결해 주기 위해서


Devtool을 사용한다.


1. depencies 추가 - build.gradle


compile("org.springframework.boot:spring-boot-devtools")


2. application.properties에 설정


spring.devtools.livereload.enabled=true


Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

Java 코드에서 불필요한 코드를 제거하기 위해 사용할 수 있는 JAR(Java Archive) 파일이다.

POJO(Plain Old Java Object), model, VO(Value Object) 등이라 칭하는 Java Bean을 생성할 때 getter, setter, toString 메서드들을 컴파일시에 대신 생성해준다.

개발시간이 단축될 뿐만아니라 코드 수 또한 줄어들고, 중복되는 부분이 줄어들어 코드가 더욱 명확하게 표시된다.


1. 다운로드 : https://projectlombok.org/download.html


2. 다운로드 받은 파일 Java로 실행(마우스 우클릭으로)


2. STS.exe 파일을 찾아서 선택해 준다(STS 받아서 한번은 실행을 한 후 진행 해야한다)



3. STS.ini 파일에 추가

-javaagent:lombok.jar

-Xbootclasspath/a:lombok.jar


# 오류시


'웹개발 > 스프링 프레임워크' 카테고리의 다른 글

STS에서 sql파일 생성하기  (0) 2017.07.14
Spring Boot 재기동 없이 소스코드 적용  (0) 2017.07.14
Lombok 설치  (0) 2017.07.14
bower 추가!  (0) 2017.07.14
Spring Boot 프로젝트 만들기 - 2편  (0) 2017.07.14
Spring Boot 프로젝트 만들기 - 3편  (0) 2017.07.14
Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

Spring Boot 프로젝트 만들기 - 1편





Gradle + MyBatis + MariaDB 를 이용한 스프링 부트 프로젝트를 생성 해보았고 이번엔 프로엔트 패키지 관리 툴인 

Bower를 설치하여 적용 하려고 한다. 

핫바리 개발자로서 아직 크게 필요성을 느끼진 못하나 gulp or grunt 를 이용하여 의존성도 해결하고 라이브러리 버전 

관리도 가능하니 이부분 까지 해봐야 할 것 같다.

1. node.js 다운 로드 https://nodejs.org/ko/download/


2. 설치 후 cmd 창에 



node -v


3. bower 설치

npm install -g bower


4. git 설치


https://git-scm.com/download/win 다운로드 후 설치


a: Select> Use Git form the Windows Command Prompt 

b: Select> Checkout Windows-style, commit Unix-style line endings

c: Select> Use Windows' default console window




# 리눅스 CentOS 설치


1. node.js 설치


https://nodejs.org/ko/download/ 다운로드 후 설치 or


# wget https://nodejs.org/dist/v6.10.3/node-v6.10.3.tar.gz

#tar xvf node

#cd node-v

#yum install gcc gcc-c++

#./configure

#make

#make install

#node –version


2. bower 설치


# npm install –g bower


3. git 설치


# yum –y install git



# bower 사용법



* git bash 실행


1..bowerrc 파일 작성(home 디렉토리에 작성. 없으면 default값 사용. 프로젝트 home에 두면 마지막 파일 기준으로 override 됨) 설정 파일임. 각자의 스타일에 맞게 작성


# vi .bowerrc

{

“directory":"src/main/resources/static/bower_components”,

“analytics”: false,

“timeout”: 120000,

“color” : true,

“json”:”bower.json”

}


2. 해당 프로젝트 경로로 이동하여 bower.json 파일 생성


# cd /c/java77/bin/workspace/bulkywebdeveloper

# bower init





3. jquery 검색



# bower search jquery


4. jquery install



# bower install jquery --save-dev


--save-dev로 프로젝트의 bower.json파일에 같이 기록




5. 프로젝트 새로고침하면



jquery 가 추가 되어 있다. 이제 저 경로로 접근하여 jquery를 사용 하면 끝!



* bower 명령어


- 설치 bower.json에 devDependecies에 해당 패키지명 저장

$ bower install <package> --save-dev

 

- 설치된 컴포넌트 제거

$ bower uninstall <package>

 

- 현재 폴더 하위에 설치된 컴포넌트 목록 확인 (최신버전이 아닐경우 옆에 최신버전이 ()에 표시됨)

$ bower ls/list

 

- 컴포넌트 검색

bower search <package>

 

- 패키지 검색

$ bower lookup <package>

 

- 패키지 버전정보 확인

$ bower info <package>




Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요