在Spring Boot框架中,要?jiǎng)?chuàng)建一個(gè)非Web應(yīng)用程序(純Java程序),有兩種方式。
方式一:直接在main方法中,根據(jù)SpringApplication.run()方法獲取返回的Spring容器對象,再獲取業(yè)務(wù)bean進(jìn)行調(diào)用
項(xiàng)目名稱:025-springboot-java-01
1.創(chuàng)建一個(gè)SpringBoot Module




2.創(chuàng)建一個(gè)演示UserService接口及實(shí)現(xiàn)類

UserService.java接口
package com.abc.springboot.service;
/**
* ClassName:UserService
* Package:com.abc.springboot.service
* Description:<br/>
*/
public interface UserService {
String sayHello();
}
UserServiceImpl.java接口實(shí)現(xiàn)類
package com.abc.springboot.service.impl;
import com.abc.springboot.service.UserService;
import org.springframework.stereotype.Service;
/**
* ClassName:UserServiceImpl
* Package:com.abc.springboot.service.impl
* Description:<br/>
*/
@Service
public class UserServiceImpl implements UserService {
@Override
public String sayHello() {
return "Hello,SpringBoot Java!";
}
}
3.在Application類的main方法中,獲取容器,調(diào)用業(yè)務(wù)bean
package com.abc.springboot;
import com.abc.springboot.service.UserService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
/**
* SpringBoot程序啟動后,返回值是ConfigurableApplicationContext,它也是一個(gè)Spring容器對象
* 它其它相當(dāng)于原來Spring中啟動容器ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("");
*/
//獲取SpringBoot程序啟動后的Spring容器
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
//從Spring容器中獲取指定bean的對象
UserService userService = (UserService) context.getBean("userServiceImpl");
//調(diào)用業(yè)務(wù)bean的方法
String sayHello = userService.sayHello();
System.out.println(sayHello);
}
}

方式二:Spring boot 的入口類實(shí)現(xiàn)CommandLineRunner接口
項(xiàng)目名稱:026-springboot-java-02




創(chuàng)建一個(gè)UserService接口及接口實(shí)現(xiàn)類

UserService.java接口類
package com.abc.springboot.service;
/**
* ClassName:UserService
* Package:com.abc.springboot.service
* Description:
*/
public interface UserService {
String sayHello();
}
UserServiceImpl.java
package com.abc.springboot.service.impl;
import com.abc.springboot.service.UserService;
import org.springframework.stereotype.Service;
/**
* ClassName:UserServiceImpl
* Package:com.abc.springboot.service.impl
* Description:
*/
@Service
public class UserServiceImpl implements UserService {
@Override
public String sayHello() {
return "Hello,SpringBoot Java!";
}
}
將Application類的@SpringBootApplication注解注釋掉,復(fù)制一個(gè)新的Application取名為Application2,實(shí)現(xiàn)CommandLineRunner接口
package com.abc.springboot;
import com.abc.springboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application2 implements CommandLineRunner {
//第二步:通過容器獲取bean,并注入給userService
@Autowired
private UserService userService;
public static void main(String[] args) {
//第一步:SpringBoot的啟動程序,會初始化spring容器
SpringApplication.run(Application2.class,args);
}
//覆蓋接口中的run方法
@Override
public void run(String... args) throws Exception {
//第三步:容器啟動后調(diào)用run方法,在該方法中調(diào)用業(yè)務(wù)方法
String sayHello = userService.sayHello();
System.out.println(sayHello);
}
}

小Tip
1.關(guān)閉SpringBoot Logo圖標(biāo)及啟動日志
項(xiàng)目名稱:027-springboot-logo-01
package com.abc.springboot;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(Application.class);
//關(guān)閉啟動logo和啟動日志的輸出
springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run(args);
}
}

修改完畢后,運(yùn)行程序查看效果
2.修改啟動的logo圖標(biāo)
項(xiàng)目名稱:028-springboot-logo-02
修改前LOGO

在src/main/resources放入banner.txt文件,該文件名字不能隨意,文件中的內(nèi)容就是要輸出的logo;
可以利用網(wǎng)站生成圖標(biāo):http://patorjk.com/software/taag/,將生成好的圖標(biāo)文字粘貼到banner.txt文件中,然后將關(guān)閉logo輸出的語句注釋,啟動看效果。
修改后LOGO
