Spring Boot 설정 관련하여 초기 셋팅해 주는 URL

  : https://start.spring.io/




1. 메이븐 설정


<?xml version="1.0" encoding="UTF-8"?>

<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>com.iinnoinc</groupId>

<artifactId>SpringBootTest</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>


<name>SpringBootTest</name>

<description>Demo project for Spring Boot</description>


<parent>

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

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

<version>1.5.7.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>


<properties>

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

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

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

</properties>


<dependencies>

<dependency>

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

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

<scope>test</scope>

</dependency>


<dependency>

<groupId>org.mybatis.spring.boot</groupId>

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

<version>1.3.1</version>

</dependency>


<dependency>

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

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

</dependency>


<dependency>

    <groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

</dependency>

</dependencies>


<build>

<plugins>

<plugin>

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

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>


</project>



1. Application Class생성


package com.innoinc;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.scheduling.annotation.EnableScheduling;



@SpringBootApplication

@EnableScheduling

public class SpringBootTestApplication {


public static void main(String[] args) {

SpringApplication.run(SpringBootTestApplication.class, args);

}


}



2. Scheduler Task 생성


package com.innoinc.task;


import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.concurrent.TimeUnit;


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Component;


@Component

public class SchedulerTask {


private static final Logger logger = LoggerFactory.getLogger(SchedulerTask.class);



private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");



@Scheduled(fixedRate = 2000)

public void scheduleTaskWithFixedRate() {

    logger.info("Fixed Rate Task :: Execution Time - {}", dateFormat.format(new Date()) );

}



@Scheduled(fixedDelay = 2000)

public void scheduleTaskWithFixedDelay() {

    logger.info("Fixed Delay Task :: Execution Time - {}", dateFormat.format(new Date()));

    try {

        TimeUnit.SECONDS.sleep(5);

    } catch (InterruptedException ex) {

        logger.error("Ran into an error {}", ex);

        throw new IllegalStateException(ex);

    }

}



@Scheduled(fixedRate = 2000, initialDelay = 5000)

public void scheduleTaskWithInitialDelay() {

    logger.info("Fixed Rate Task with Initial Delay :: Execution Time - {}", dateFormat.format(new Date()));

}



@Scheduled(cron = "0 * * * * ?")

public void scheduleTaskWithCronExpression() {

    logger.info("Cron Task :: Execution Time - {}", dateFormat.format(new Date()));

}


}


3. SpringBoot Main class 구동



만약

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.

에러 발생 시 Eclipse Run Configurations에서 Arguments에 --debug 추가


또한 

Cannot determine embedded database driver class for database type NONE


Action:


If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).

이러한 오류가 발생 시 Application Class에 @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) 추가

+ Recent posts