Spring--->入門(IOC)
阿新 • • 發佈:2020-08-22
-
Spring是一個開源免費的框架
-
Spring時一個輕量級的、非入侵式的框架
-
控制反轉,面向切面程式設計
-
支援事務的處理,對框架的整合的支援
1、新建Maven專案
導包,這一個載入一堆包,非常好用
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version></dependency>
</dependencies>
2、實現控制反轉
userDao(介面),userDaoImpl,UserService(介面),UserServiceImpl
只包含getUser()方法
import com.xian.Dao.UserDao; import com.xian.Dao.UserDaoImpl; public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao){this.userDao=userDao; } @Override public void getUser() { userDao.getUser(); } }
public class MyTest {
public static void main(String[] args) {
UserService userService=new UserServiceImpl();
((UserServiceImpl)userService).setUserDao(new UserDaoImpl());
((UserServiceImpl)userService).setUserDao(new MysqlDaoimpl());userService.getUser();
}
}
把控制權交給使用者,使用者需要那個呼叫哪個
3、Spring實現控制反轉
1、建立Bean
<?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"> <bean id="hello" class="com.xian.pojo.Hello"> <property name="str" value="Hello,Spring"/> </bean> </beans>
2、建立普通Java類
package com.xian.pojo; public class Hello { private String str; public String getStr() { return str; } public void setStr(String str) { this.str = str; } @Override public String toString() { return "Hello{" + "str='" + str + '\'' + '}'; } }
3、Test
public class MyTest { public static void main(String[] args) { ApplicationContext context1 = new ClassPathXmlApplicationContext("beans.xml"); Hello hello = (Hello) context1.getBean("hello"); System.out.println(hello.toString()); } }
注意:被建立Bean的pojo物件,會發生一些細微的變化
- 程式不再new物件,由Spring建立
- 程式不再賦值,由Spring進行賦值
4、Spring實現控制反轉
1.Bean的建立
<bean id="Mysql" class="com.xian.Dao.MysqlDaoimpl"></bean> <bean id="User" class="com.xian.Dao.UserDaoImpl"></bean> <bean id="UserServer" class="com.xian.Service.UserServiceImpl"> <property name="userDao" ref="Mysql"></property> </bean> </beans>
2.Test
public class MyTest { public static void main(String[] args) { ApplicationContext context1 = new ClassPathXmlApplicationContext("beans.xml"); UserServiceImpl userServer = (UserServiceImpl) context1.getBean("UserServer"); userServer.getUser(); } }
-
ref:引用Spring容器建立好的物件(beans檔案裡有的)
-
Value:具體的值,基本資料型別
5、IOC到底是個啥
物件由Spring建立,管理和裝配
6、IOC建立物件
- 預設使用空構造
- 類裡如果包含有參構造,空構造會失效,對應的引數必須賦值
建立方式
1.按下標
<bean id="hello" class="com.xian.pojo.Hello">
<constructor-arg index="0" value="Spring,Hello"></constructor-arg>
</bean>
2.按引數名
<bean id="hello" class="com.xian.pojo.Hello">
<constructor-arg name="str" value="Heello,Spring"/>
</bean>