Java開發基礎Spring中IOC定義及使用教程

Java開發基礎Spring中IOC定義及使用教程
Java開發中使用 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
創建一個工廠,可以用 getBean()獲取一個交給spring管理的類實例.

XML配置文件:

bean標籤裏面id代表名字(name和id差不多,有一些區別),getBean就需要這個id.
class 代表用哪一個類生成實例對象.
init-method 可以指定對象被實例化之後執行的一個方法,需要在類裏面實現這個方法
destroy-method 指定對象被銷燬之前執行的方法,(前提:是單例(默認就是單例),而且在工廠關閉時纔會被銷燬.)
scope 代表bean的作用範圍:
  singleton: 默認, 單例模式
  prototype: 多例模式
  request: 應用在web項目中,創建之後放到request範圍中
  session: 應用在web項目中,創建之後放到session範圍中
  globalsession: 應用在web項目中,必須在porlet環境下使用,如果沒有這種環境,那麼他就相當於session
屬性注入:
構造方法方式: 首先需要聲明類的構造函數, 然後在配置裏面如:
<bean id="userService" class="com.smile.myweb.UserServiceImpl" scope="prototype">
<constructor-arg name="name" value="哈哈"/>
<constructor-arg name="age" value="18"/>
</bean>
set方法方式:需要聲明set方法,然後配置:
<bean id="userService" class="com.smile.myweb.UserServiceImpl" scope="prototype">
<property name="name" value="哈哈"/>
<property name="age" value="18"/>
</bean>
(注意如果屬性是一個對象類型,就需要用ref來設置bean的id或name,value是賦普通值用的)
p名稱空間的方式(spring2.5以後)首先需要引入 xmlns:p="http://www.springframework.org/schema/p"
然後用p:user="user"賦值普通屬性或者用p:user-ref="user"賦值對象屬性.
SpEL的方式屬性注入:value=#{'String'},字符串類型需要用單引號,對象類型直接寫bean的id,也可以使用對象的屬性或者方法等進行賦值.
集合類型的屬性注入可以這麼聲明(set, map 同理):
<property name="user">
<list>
<value>王五</value>
<value>李四</value>
</list>
</property>
在xml配置文件中引入別的配置文件 <import resource="applicationContext2.xml"/>

註解方式IOC:
Java開發基礎Spring中IOC定義及使用教程
需要在xml裏面配置<context:component-scan base-package="com.smile.myweb"/>
@Component : 修飾一個類,把類交給springIOC容器(相當於<bean>), 裏面value相當於類的id.
@Controller : 衍生註解,web層
@Service : 衍生註解,業務層
@Repository : 衍生註解,持久層
初始化方法的註解@PostConstruct, 加在init方法上,相當於init-method
銷燬方法的註解@PreDestroy, 加在destroy方法上,相當於destroy-method
bean作用範圍的註解:@Scope, 默認是singleton,prototype是多例
屬性注入的註解:
@Value : 設置普通屬性的值
@Autowired : 設置對象屬性的值(默認是按類型來注入對象的,如果需要按id注入,需要搭配@Qualifier(value="beanId"))
(@Resource相當於 @Autowired+@Qualifier,裏面的name就相當於beadId,這個是spring實現的規範)

文章來自:https://www.itjmd.com/news/show-5336.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章