3.IOC的實現(配置方式)
阿新 • • 發佈:2018-12-13
一.開發步驟
1.新增依賴
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.0.8.RELEASE</version> </dependency> </dependencies>
2.配置
<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-4.0.xsd"> <bean id="user" class="User"/> </beans>
3.編寫類和方法
public class User {
public void add(){
System.out.println("user add......");
}
}
4.測試
public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml"); User user = (User)applicationContext.getBean("user"); user.add(); }
二.bean管理
1.使用配置檔案建立物件所進的bean的例項化方式,最常用的是使用類中無參建構函式建立,類中必須要有預設的無參建構函式 2.bean標籤的常用屬性
- id 物件的名稱
- class 物件類的全限定名稱
- scope 物件的範圍(singleton,propertype)
三.屬性注入
1.getter和setter方式注入
<bean id="user" class="User">
<property name="username" value="steven"/>
</bean>
public class User {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
User user = (User)applicationContext.getBean("user");
System.out.println(user.getUsername());
}
2.建構函式方式注入
<bean id="user" class="User">
<constructor-arg value="steven"/>
</bean>
public class User {
private String username;
public User(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
}
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
User user = (User)applicationContext.getBean("user");
System.out.println(user.getUsername());
}
3.物件型別方式注入
public class UserDao {
public void add(){
System.out.println("UserDao...");
}
}
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(){
userDao.add();
}
}
<bean id="userDao" class="UserDao"/>
<bean id="userService" class="UserService">
<property name="userDao" ref="userDao"/>
</bean>
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
UserService userService = (UserService)applicationContext.getBean("userService");
userService.add();
}