spring IOC bean配置方法

2021-07-23 13:14:55 字數 2260 閱讀 5999

spring ioc主要有xml和註解兩種方式,xml配置可以基於類名、工廠方法(靜態工廠方法和例項工廠方法)、factorybean。

一、xml配置

1、基於類名

class為全類名,

id為spring容器建立的bean物件id,

init-method和destroy-method分別為初始化和銷毀時呼叫的方法,

scope定義bean的作用域,預設為singleton,只建立一次,如果要每次使用的時候都建立,就是用prototype

init-method="init" destroy-method="destory" scope="singleton">

1.1 通過屬性注入

init-method="init" destroy-method="destory" scope="singleton">

元素為bean的屬性賦值,name為屬性名稱,value為值

1.2通過建構函式注入

建構函式如下

public helloworld(string name,int a)

配置檔案如下

init-method="init" destroy-method="destory" scope="prototype">

預設constructor-arg順序必須與建構函式的引數順序一致,如果順序不一致,就要通過index屬性來指定,如下

init-method="init" destroy-method="destory" scope="prototype">

index="1">

index="0">

如果還有另外乙個建構函式,第二個引數是double型的,那個100這個值就都可以匹配上,此時,可以通過type屬性來指定,如下:

init-method="init" destroy-method="destory" scope="prototype">

type="int">

2、工廠方法

2.1 靜態工廠方法

首先建立具有靜態方法的工廠類

public class staticfactory

}配置檔案如下

class必須是工廠的全類名

factory-method為工廠的靜態方法

constructor-arg提供靜態方法所必須的引數

2.2 例項工廠方法

首選建立例項工廠類

public class instancefactory

}配置如下

2.3 factorybean

首先建立factorybean

public class hellofactorybean implements factorybean

@override

public class<?> getobjecttype()

@override

public boolean issingleton()

}配置如下

二、註解

註解包含以下幾類

@comonent 表示受spring管理的基本元件

@respository 表示受spring管理的持久層元件

@service 表示受spring管理的業務層元件

@controller 表示受spring管理的表現層元件

通過註解掃瞄到的元件,預設名稱是類名的第乙個字母小寫,如果要指定名稱,就通過value屬性指定,如@component("user"),value為預設屬性,可以省略寫。

配置檔案如下

base-package 指定掃瞄的包路徑,其子路徑會同時被掃瞄

resource-pattern 可以指定符合某些格式的類被掃瞄

context:component-scan還可以使用context:exclude-filter子節點來排除某些類,用context:include-filter來只包含某些類。

只包含某些類的寫法:

base-package="com.generic" use-default-filters="false">

排除某些類的寫法:

base-package="com.generic" use-default-filters="true">

Spring IOC bean物件的作用範圍

bean標籤的scope屬性 作用 用於指定bean的作用範圍 取值 singleton 單調 預設值 prototype 多例的 request 作用於web應用的請求範圍 session 作用於web應用的會話範圍 global seesion 作用於集群環境的請求範圍 全域性會話範圍 不是集群...

linux配置 網路配置

ip位址,子網掩碼,閘道器 設定ip位址,子網掩碼並啟用 ifconfig eth0 10.192.77.250 netmask 255.255.255.0 up 注 ip,掩碼,閘道器都設定到 etc sysconfig network scripts ifcfg eth0裡面了。設定多ip 可以...

elementui配置 element配置

vue elementui 配置 第一步 安裝elementui node命令 npm i element ui s 第二步 在man.js中配置 import elementui from element ui import element ui lib theme chalk index.css...