天下之事常成于困约,而败于奢靡。这篇文章主要讲述Spring boot 梳理 - SpringApplication相关的知识,希望能为你提供帮助。
- 简单启动方式
public static void main(String[] args) { SpringApplication.run(MySpringConfiguration.class, args); }
- 调试方式启动
-
java -jar myproject-0.0.1-SNAPSHOT.jar --debug
-
- 高级启动方式
@SpringBootApplication public class App { public static void main( String[] args ) { SpringApplication app=new SpringApplication(App.class); app.setBannerMode(Banner.Mode.OFF); app.run(args); } }
-
Web Environment
- A
SpringApplication
attempts to create the right type ofApplicationContext
on your behalf. The algorithm used to determine aWebApplicationType
is fairly simple:
- If Spring MVC is present, an
AnnotationConfigServletWebServerApplicationContext
is used - If Spring MVC is not present and Spring WebFlux is present, an
AnnotationConfigReactiveWebServerApplicationContext
is used - Otherwise,
AnnotationConfigApplicationContext
is used
WebClient
from Spring WebFlux in the same application, Spring MVC will be used by default. You can override that easily by callingsetWebApplicationType(WebApplicationType)
.
It is also possible to take complete control of theApplicationContext
type that is used by callingsetApplicationContextClass(…?)
.
- If Spring MVC is present, an
- A
-
Accessing Application Arguments
- If you need to access the application arguments that were passed to
SpringApplication.run(…?)
, you can inject aorg.springframework.boot.ApplicationArguments
bean. TheApplicationArguments
interface provides access to both the rawString[]
arguments as well as parsedoption
andnon-option
arguments, as shown in the following example: import org.springframework.boot.*; import org.springframework.beans.factory.annotation.*; import org.springframework.stereotype.*; @Component public class MyBean {@Autowired public MyBean(ApplicationArguments args) { boolean debug = args.containsOption("debug"); List< String> files = args.getNonOptionArgs(); // if run with "--debug logfile.txt" debug=true, files=["logfile.txt"] }}
【Spring boot 梳理 - SpringApplication】
- If you need to access the application arguments that were passed to
-
Using the ApplicationRunner or CommandLineRunner
- If you need to run some specific code once the
SpringApplication
has started, you can implement theApplicationRunner
orCommandLineRunner
interfaces. Both interfaces work in the same way and offer a singlerun
method, which is called just beforeSpringApplication.run(…?)
completes.
TheCommandLineRunner
interfaces provides access to application arguments as a simple string array, whereas theApplicationRunner
uses theApplicationArguments
interface discussed earlier. The following example shows aCommandLineRunner
with arun
method:
- If several
CommandLineRunner
orApplicationRunner
beans are defined that must be called in a specific order, you can additionally implement theorg.springframework.core.Ordered
interface or use theorg.springframework.core.annotation.Order
annotation. import org.springframework.boot.*; import org.springframework.stereotype.*; @Component public class MyBean implements CommandLineRunner {public void run(String... args) { // Do something... }}
- If you need to run some specific code once the
推荐阅读
- csapp-局部性
- Spring boot 梳理 - 在bean中使用命令行参数-自动装配ApplicationArguments
- 如何精准的找到社交类APP软件开发服务商
- Delphi使用逍遥安卓模拟器
- 用H5开发微信还是开发APP()
- 使用什么进行app开发
- ORM(Object Relational Mapping)
- springmvc中@RequestMapping的使用
- Android监听view的attached或detached状态