Spring Boot Not Web
Create problem with Spring Boot(without Web)
Let’s make a general problem with Spring Boot
I use following
- Spring Boot(For properties and logging)
- spring-context
- spring-jdbc
- spring
Environment
- MySQL
- IntelliJ
Create Spring Boot Project with IDEA
Create project and build.gradle
mkdir SpringProgram cd SpringProgram mkdir -p src/main/java mkdir -p src/main/resources mkdir -p src/main/test touch build.gradle
Prepare build.gradle
buildscript { repositories { mavenCentral() } dependencies { classpath( 'org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE' ) } } apply plugin: "java" apply plugin: "idea" apply plugin: 'spring-boot' idea { module { inheritOutputDirs = false outputDir = file("$buildDir/classes/main/") } } jar { baseName = "SpringProject" version = "0.0.1-SNAPSHOT" } repositories { mavenCentral() } dependencies { compile('org.springframework:spring:4.3.7.RELEASE') compile('org.springframework:spring-jdbc:4.3.7.RELEASE') compile('org.springframework:spring-context:4.3.7.RELEASE') compile('org.springframework.boot:spring-boot-starter') compile('mysql:mysql-connector-java:5.1.40') }
Resolve Dependency
gradle idea
Download dependencies and build.
Open this folder from IntelliJ
Sample
This is Sample Application.
Start from main and try to get data from Database.
Application.java
@SpringBootApplication @ComponentScan("com.atmarkplant.springprogram") public class Application { public static void main(String[] args) { //ApplicationContext context = new AnnotationConfigApplicationContext(Application.class) ; ConfigurableApplicationContext context = SpringApplication.run(Application.class, args); MessagePrinter printer = context.getBean(MessagePrinter.class); DatabaseManagement databaseManagement = context.getBean(DatabaseManagement.class); databaseManagement.printMessage(); printer.printMessage(); } }
resources/application.yml
springprogram: database: url: jdbc:mysql://localhost:3306/test username: root password: password
DataSourceConfiguration.java
@Configuration @EnableTransactionManagement public class DataSourceConfiguration { @Value("${springprogram.database.url}") private String url; @Value("${springprogram.database.username}") private String username; @Value("${springprogram.database.password}") private String password; @Bean public DriverManagerDataSource dataSource() { DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); driverManagerDataSource.setDriverClassName(com.mysql.jdbc.Driver.class.getName()); driverManagerDataSource.setUrl(url); driverManagerDataSource.setUsername(username); driverManagerDataSource.setPassword(password); return driverManagerDataSource; } @Bean public DataSourceTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); } @Bean public JdbcTemplate jdbcTemplate() { return new JdbcTemplate(dataSource()); } }
MessagePrinter.java
@Component public class MessagePrinter { public void printMessage() { System.out.println("Hello World!"); } }
Person.java
public class Person { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }