国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

詳解Spring Boot的GenericApplicationContext使用教程

2024-07-14 08:42:56
字體:
供稿:網(wǎng)友

教程展示了如何在Spring應(yīng)用程序中使用GenericApplicationContext 。在該示例中,我們創(chuàng)建了一個(gè)Spring Boot控制臺(tái)應(yīng)用程序。

Spring是一個(gè)流行的Java應(yīng)用程序框架,Spring Boot 是Spring的演變,可以幫助您輕松創(chuàng)建獨(dú)立的,基于生產(chǎn)級(jí)別的Spring應(yīng)用程序。

GenericApplicationContext是一個(gè)實(shí)現(xiàn)ApplicationContext,它不預(yù)設(shè)指定任何bean定義格式; 例如XML或注釋。

在下面的應(yīng)用程序中,我們GenericApplicationContext 使用上下文的registerBean()方法創(chuàng)建并注冊(cè)一個(gè)新bean 。稍后我們從應(yīng)用程序上下文中檢索bean getBean()。

以下是一個(gè)標(biāo)準(zhǔn)Spring Boot的POM.xml:

<?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.zetcode</groupId>  <artifactId>genappctx</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>jar</packaging>  <name>genappctx</name>  <description>Using GenericApplicationContext</description>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.1.0.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>11</java.version>  </properties>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>    </plugins>  </build></project>

這是Maven pom.xml文件。這spring-boot-starter-parent是一個(gè)父POM,為使用Maven構(gòu)建的應(yīng)用程序提供依賴性和插件管理。它spring-boot-starter是核心啟動(dòng)器,包括自動(dòng)配置支持,日志記錄和YAML。在spring-boot-starter-test春季增加了測(cè)試支持。將spring-boot-maven-pluginSpring應(yīng)用程序包轉(zhuǎn)換為可執(zhí)行的JAR或WAR歸檔文件。

application.properties:

spring.main.banner-mode = off logging.level.root = ERROR logging.pattern.console =%d {dd-MM-yyyy HH:mm:ss}%magenta([%thread])%highlight(% - 5level) )%logger。%M - %msg%n

這個(gè)application.properties是Spring Boot中的主要配置文件。我們關(guān)閉Spring標(biāo)題,僅減少記錄到錯(cuò)誤的數(shù)量,并設(shè)置控制臺(tái)日志記錄模式。

TimeService.java:

public class TimeService {  public Instant getNow() {    return Instant.now();  }}

TimeService包含一個(gè)返回當(dāng)前日期和時(shí)間的簡(jiǎn)單方法。此服務(wù)類將在我們的通用應(yīng)用程序上下文中注冊(cè)。

@SpringBootApplicationpublic class MyApplication implements CommandLineRunner {  @Autowired  private GenericApplicationContext context;  public static void main(String[] args) {    SpringApplication.run(MyApplication.class, args);  }  @Override  public void run(String... args) throws Exception {    context.registerBean("com.zetcode.Service.TimeService",        TimeService.class, () -> new TimeService());    var timeService = (TimeService) context.getBean(TimeService.class);    System.out.println(timeService.getNow());    context.registerShutdownHook();  }}

MyApplication是設(shè)置Spring Boot應(yīng)用程序的入口點(diǎn)。該@SpringBootApplication注釋能夠自動(dòng)配置和組件掃描。這是一個(gè)方便的注釋,等同于@Configuration,@EnableAutoConfiguration以及@ComponentScan注釋。

這里我們注入了GenericApplicationContext。使用該registerBean()方法注冊(cè)了 一個(gè)新的TimeService bean 。

下面是測(cè)試MyApplicationTests.java:

@RunWith(SpringRunner.class)@SpringBootTestpublic class MyApplicationTests {  @Autowired  private GenericApplicationContext context;  @Test  public void testNow() {    var timeService = (TimeService) context.getBean("com.zetcode.Service.TimeService");    var now = timeService.getNow();    assertThat(now.isBefore(Instant.now()));  }}

運(yùn)行:

mvn -q spring-boot:run

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍州市| 金寨县| 久治县| 高密市| 昭觉县| 浙江省| 浮梁县| 南昌市| 仙桃市| 阜新市| 汤阴县| 修武县| 蒙山县| 宾阳县| 潮州市| 新野县| 兴山县| 黄浦区| 宣恩县| 杭锦后旗| 嘉鱼县| 靖西县| 南投县| 信阳市| 锡林郭勒盟| 澄城县| 西宁市| 九龙县| 张掖市| 汝南县| 上杭县| 漯河市| 巴马| 冀州市| 北京市| 施甸县| 黄骅市| 沂源县| 和平县| 新田县| 普宁市|