SSM spring Bean基礎配置實例詳解
在 Spring 框架中,Bean 是一個非常核心的概念。簡單來說,Bean 是 Spring 容器管理的對象,它是由 Spring 容器實例化、配置和管理的。Spring 通過依賴注入(DI)將這些 Bean 組合在一起,形成一個完整的應用程序。
什么是 Bean?
Bean 是 Spring 框架中的一個基本單元,通常是一個普通的 Java 對象(POJO),但它被 Spring 容器管理。Spring 容器負責 Bean 的生命周期,包括創(chuàng)建、初始化、依賴注入、銷毀等。
Bean 的特點
實例化:
- Spring 容器負責創(chuàng)建 Bean 的實例。
- 可以通過配置文件(XML)、注解(如
@Component
、@Service
、@Controller
、@Repository
)或 Java 配置類來定義 Bean。
依賴注入:
- Spring 容器會自動注入 Bean 所需的依賴關系。
- 依賴注入可以通過構造器注入(Constructor Injection)或 setter 方法注入(Setter Injection)來實現。
生命周期管理:
- Spring 容器管理 Bean 的生命周期,包括初始化、使用和銷毀。
- 可以通過實現
InitializingBean
接口或定義@PostConstruct
注解的方法來定義初始化邏輯。 - 可以通過實現
DisposableBean
接口或定義@PreDestroy
注解的方法來定義銷毀邏輯。
作用域:
- Bean 可以有不同的作用域,如
singleton
(單例)、prototype
(原型)、request
(請求)、session
(會話)等。 - 默認情況下,Bean 的作用域是
singleton
,即容器中只有一個實例。
基礎配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--name:為bean指定別名,別名可以有多個,使用逗號,分號,空格進行分隔--> <bean id="bookService" name="service service4 bookEbi" class="com.itheima.service.impl.BookServiceImpl"> <property name="bookDao" ref="bookDao"/> </bean>
別名配置
作用范圍
默認創(chuàng)建為單例對象 scope 默認 singleton
運行如下代碼
package com.itheima; import com.itheima.dao.BookDao; import com.itheima.service.BookService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AppForScope { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); BookDao bookDao1 = (BookDao) ctx.getBean("bookDao"); BookDao bookDao2 = (BookDao) ctx.getBean("bookDao"); System.out.println(bookDao1); System.out.println(bookDao2); } }
輸出如下:
這時應在bean對象配置里加入參數scope。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--name:為bean指定別名,別名可以有多個,使用逗號,分號,空格進行分隔--> <bean id="bookService" name="service service4 bookEbi" class="com.itheima.service.impl.BookServiceImpl"> <property name="bookDao" ref="bookDao"/> </bean> <!--scope:為bean設置作用范圍,可選值為單例singloton,非單例prototype--> <bean id="bookDao" name="dao" class="com.itheima.dao.impl.BookDaoImpl" scope="prototype" /> </beans>
到此這篇關于SSM spring Bean基礎配置的文章就介紹到這了,更多相關SSM spring Bean配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決myBatis generator逆向生成沒有根據主鍵的select,update和delete問題
這篇文章主要介紹了解決myBatis generator逆向生成沒有根據主鍵的select,update和delete問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09MyEclipse如何將項目的開發(fā)環(huán)境與服務器的JDK 版本保持一致
我們使用MyEclipse開發(fā)Java項目開發(fā)中,偶爾會遇到因項目開發(fā)環(huán)境不協調,導致這樣那樣的問題,在這里以把所有環(huán)境調整為JDK1.6 為例,給大家詳細介紹MyEclipse如何將項目的開發(fā)環(huán)境與服務器的JDK 版本保持一致,需要的朋友參考下吧2024-04-04如何解決Mybatis--java.lang.IllegalArgumentException: Result Maps
這兩天因為項目需要整合spring、struts2、mybatis三大框架,但啟動的時候總出現這個錯誤,困擾我好久,折騰了好久終于找到問題根源,下面小編給大家分享下問題所在及解決辦法,一起看看吧2016-12-12