<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Sping Bean 簡介 > 原文: [https://javatutorial.net/introduction-to-spring-bean](https://javatutorial.net/introduction-to-spring-bean) 在本教程中,您將學習什么是 Sping Bean 以及如何使用它。 ![spring-featured-image](https://img.kancloud.cn/64/23/64231db4bf6e880066d0d4c2e31ac166_780x330.jpg) ## 什么是 Sping Bean? Bean 是構成應用程序的對象,并由 Spring IoC 容器管理。 [Spring Framework 文檔](https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-introduction)的正式定義是: 在 Spring 中,構成應用程序主干并由 Spring IoC 容器管理的對象稱為 Bean。 Bean 是由 Spring IoC 容器實例化,組裝和以其他方式管理的對象。 如果您不熟悉 Spring IoC 容器,[強烈建議您單擊此處](https://javatutorial.net/java-spring-ioc-container-example)。您將被重定向到我撰寫的有關該主題的文章。 bean 的定義包含稱為**配置元數據的內容**。容器需要知道如何創建 Bean,Bean 的生命周期詳細信息以及 Bean 的依賴關系。 ## 如何聲明一個 Bean? 我們可以簡單地通過使用`@Bean`注解來聲明一個 bean。 聲明帶有`@Bean`注解的方法的示例: ```java @Configuration public class DemoConfig{ @Bean public String demoService() { return "Hello World!"; } } ``` 值得一提的是,當 JavaConfig 遇到`@Bean`方法時,它將執行該方法并將返回值注冊為`BeanFactory`中的 bean。 ### 域類 假設我們有一個名為`Company`的類,該類具有一個將`Employee`實例分配給實例變量的構造函數。 它還具有該員工的相應的 setter 和 getter 方法。 `Company.java` ```java public class Company { private Employee employee; public Company(Employee employee) { this.employee = employee; } public void setEmployee(Employee employee) { this.employee = employee; } public Employee getEmployee() { return employee; } } ``` 現在,讓我們看看每個員工的結構: ```java public class Employee { private int id; private String firstName; private String lastName; public Employee(int id, String firstName, String lastName) { this.id = id; this.firstName = firstName; this.lastName = lastName; } public setFirstName(String fName) { firstName = fName; } public setLastName(String lName) { lastName = lName; } public int getId() { return id; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } } ``` 具有單個構造函數和 setters/getters 方法的標準方法。 從以上兩個類別中,您將如何將員工分配到特定公司? 好吧,首先您將實例化一個`Employee`對象,然后將實例化一個`Company`對象,并將`Employee`對象作為構造函數參數傳遞。 像這樣: ```java Emplyoee employee = new Employee(1, "John", "Smith"); Company company = new Company(employee); ``` 這是通常的做法。 這種方法有什么問題? 想象一下,如果我們有數百堂課。 這將很難管理,甚至可能無法管理。 由于這個問題,我們有控制反轉。 對象可以從 IoC 容器中檢索其依賴關系,而不必自己構造依賴關系。 讓我們看看如何通過包含本文的主要主題`@Bean`來改進上述示例。 `AppConfig.java` ```java @Configuration @ComponentScan(basePackageClasses = Company.class) public class AppConfig { @Bean public Employee getEmployee() { return new Eployee(1, "John", "Smith"); } } ``` 現在我們已經編寫了配置類,我們需要創建`AnnotationConfigApplicationContext`類的實例: ```java ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); ``` 現在完成! 我們已經使 IoC 容器初始化了 bean。 還有另一件事要做。 檢查是否正確創建了 bean。 為此,只需實例化一個`Company`實例,然后我們可以使用`assertEquals`方法檢查更正。 ```java Company company = context.getBean("company", Company.class); assertEquals("John", company.getEmployee().getFirstName()); assertEquals(1, company.getEmployee().getId()); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看