반응형

 

 

CommandLineRunner

  • SpringBoot Application을 시작할 때 특정 코드를 실행하기 위한 인터페이스
  • 이 인터페이스를 구현한 빈은, SpringBoot Application이 시작될때 실행된다.

 

예제

SayHello.java

package hello.hellospring;

import org.springframework.stereotype.Component;

@Component
public class SayHello {
    public void say(String greeting) {
        System.out.println("say hello : " + greeting);
    }
}
  • 간단한 인사말을 출력하는 클래스

 

HelloCommandLineRunnser.java

package hello.hellospring;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class HelloCommandLineRunner implements CommandLineRunner {

    @Autowired
    private SayHello sayHello;

    @Override
    public void run(String... args) throws Exception {
        sayHello.say("Hello!!!!");
    }
}

 

  • CommandLineRunner 인터페이스의 run() 메소드를 구현하고 있다.
  • run() 메소드에서는 SayHello의 say() 메소드를 호출한다.
  • 따라서, 이 코드는 SpringBoot 어플리케이션이 실행 시작 지점에,
    SayHello의  say() 메소드를 호출한다.

 

결과

 

 

반응형
반응형

 

methods

정의

methods {
   add(num) {
      this.num += num;
   }
}

사용

<button v-on:click="add(10)"> add 10 </button>
  • 템플릿에서 데이터를 바인딩할 때 사용한다.
  • data binding, event binding
  • 컴포넌트의 렌더링 주기에 맞춰 매번 수행된다.
  • 따라서, event binding에서는 methods를 주로 사용한다.

 

 

 

computed

정의

computed: {
   number() {
      return this.num + 10;
   }
}

사용

<div>Added Number : {{ number }}</div>
  • data binding에만 사용된다.
  • event binding에는 사용되지 않는다.
  • 다른 데이터를 기반으로 하는 데이터를 가져오기 유용하다.
  • 의존하는 데이터가 변경될 때만 재실행되거나 재평가된다.
    (다른 데이터가 변경될 때는 재평가 되지 않는다)
  • 따러서, 다른 데이터에 의존하는 데이터에 주로 사용한다.
  • 연산을 하는 함수이지만, 결과를 데이터처럼 사용할 것이기 때문에,
    이름을 addNumber() 라고 짓지 않고, data를 다루듯이 number() 라고 하였다.

 

 

 

watch

정의

watch: {
   number(newValue, oldValue)	{
      this.number = newValue + 10;
   }
},
data() {
  return {
     number: 0
  }
}

사용

<div>Added Number : {{ number }}</div>
  • 템플릿에 직접 사용하지 않는다.
  • 템플릿 내부에서 참조하지 않지만, data, computed property를 포함한 어느 property든 감시할 수 있다.
  • 데이터 변경에 대한 반응(reaction)을 코드로 실행할 수 있다.
  • ex) http request, timer 설정, local storage에 데이터 저장
  • 주로, 데이터가 아닌 업데이트에 watch를 사용
    (바뀌는 데이터를 토대로, 데이터가 아닌 내부에서 업데이트하는 작업이 있는 경우 사용)
  • 바뀌기 전의 값과 갱신후의 값을 파라미터로 받을 수 있다.

 

 

[참조]

 

 

반응형

'IT > Vue' 카테고리의 다른 글

[Vuejs] v-model (양방향 바인딩)  (0) 2023.01.17
[Vuejs] 이벤트 수식어 submit.prevent  (0) 2023.01.17
반응형

 

v-model (양방향 바인딩)

자동으로 input의 value로 입력된 값이

Vuejs의 data와 바인딩 된다.

입력 이벤트가 발생하면, 입력된 값을 Vuejs의 data의 name 속성에 바인딩하고,

이를 통해 Vuejs의 data의 name 속성 값이 바뀌면, 그 값이 input의 value에 바인딩된다.

양방향으로 통신하기 때문에, 양방향 바인딩이라고 한다.

<input type='text'
    v-model='name'>

 

아래의 코드와 동일하다고 보면 된다.

<input type='button'
    v-bind:value='name'
    v-on:input='setName' />

v-model을 사용하면, 

  • 위 코드에서 사용되는 setName()  메소드는 작성하지 않아도 된다.
  • data에 'name' 속성은 필요하다.

 

반응형

'IT > Vue' 카테고리의 다른 글

[Vuejs] methods, computed, watch 차이  (0) 2023.01.17
[Vuejs] 이벤트 수식어 submit.prevent  (0) 2023.01.17
반응형

 

form의 기본적인 동작은 서버로 보내는 것이다.

그러면서, 화면의 데이터가 리셋되게 된다.

submit.prevent는 이런 form의 기본 동작이 되지 않도록 제어한다.

 

form의 기본적인 동작

버튼을 클릭하면, form의 기본적인 동작이 실행된다.

 

 

 

submit.prevent

v-on:submit.prevent

form의 기본적인 동작이 수행되지 않고,

지정한 메서드가 실행된다.

Javascript에서의 event.preventDefault()와 같은 효과가 있다.

반응형

'IT > Vue' 카테고리의 다른 글

[Vuejs] methods, computed, watch 차이  (0) 2023.01.17
[Vuejs] v-model (양방향 바인딩)  (0) 2023.01.17
반응형

요즘 VirtualBox에 Ubuntu를 올려서 리눅스 공부 중이다.


VirtualBox버전 : 5.0.20

Ubuntu : ubuntu-16.04-server


1. Window의 폴더 mount하기


2. 에러에 대처하는 자세

(1) virtualbox guest addtions을 install한다.

sudo apt-get update

sudo apt-get install build-essential linux-headers-$(uname -r)

sudo apt-get install virtualbox-guest-x11

마지막 sudo apt-get install virtualbox-guest-x11... 이것 때문에 시간도 많이 잡아먹고 고생 많이 했다.



(2) "VirtualBox: mount.vboxsf: mounting failed with the error: No such device" 메세지 발생 시

modprobe -a vboxguest vboxsf vboxvideo

아직 무식해서 이 명령어가 뭔지 잘 모르겠는데,

어쨌거나 신기하게 이걸 하면 돈다.

stackoverflow에는 이런 감사한 선구자들이 가득.

http://stackoverflow.com/questions/28328775/virtualbox-mount-vboxsf-mounting-failed-with-the-error-no-such-device

반응형
반응형



JSP 액션 태그



1. <jsp:useBean>

application, session, request, page 보관소에 저장된 객체를 꺼낼 수 있다. 만약 객체가 존재하지 않으면, 생성하여 보관소에 저장한다.

<jsp:useBean id="이름" scope="page|request|session|application" class="클래스명" type="타입명">

예를 들어,

<jsp:useBean id="user" scope="session" class="test.User" type="test.User">

위 코드는

session 객체에 user 객체가 존재할 경우 type속성에 작성한 User type으로 user객체를 반환한다.

session 객체에 user객체가 존재하지 않을 경우 type속성에 작성한 User type의 class 속성에 작성한 User 객체 user를 생성하여 반환한다. 즉, User user = new User(); User는 type, User는 class.

만약, type 값을 지정하지 않으면 class속성의 값과 같다.



2. <jsp:setProperty>

java bean의 property값을 설정한다.

<jsp:setProperty name="user" property="name" value="덕선이" />

user객체의 name property를 '덕선이'로 세팅한다. 여기서 user객체는 java bean이다.



3. <jsp:getProperty>

java bean의 property값을 가져온다.

<jsp:getProperty name="user" property="name" />

user객체의 name값을 가져온다. "덕선이"를 가지고 오겠지?



4. <jsp:include>

다른 페이지를 include한다.

<jsp:include page="header.jsp" />



5. <jsp:forward>

다른 jsp파일이나 서블릿, 또는 다른 웹 어플리케이션 자원으로 요청을 넘긴다.

<jsp:forward page="errorPage.jsp" />



6. <jsp:param>

<jsp:include>, <jsp:forward>, <jsp:params> 의 자식 태그로 사용된다.

<jsp:include page="header.jsp">

<jsp:param name="userName" value="최택">

</jsp:include>

위와 같이 jsp:include태그의 자식태그로 사용하여 header.jsp파일에 userName이라는 parameter 값으로 "최택"을 전달한다.



7. <jsp:plugin>



8. <jsp:element>






반응형

'IT > Web' 카테고리의 다른 글

JSP 데이터 보관소  (0) 2015.12.20
JSP 전용태그  (0) 2015.12.19
JSP 지시자  (0) 2015.12.19
JSP 내장객체  (0) 2015.12.19

+ Recent posts