Spring
針對web的開發元件。
核心容器(控制反轉IOC),整合,AOP
對象的建立控制權有程式轉交給外部送出,這種思想稱為反轉控制
ioc容器負責對象的建立初始化,被建立或者被管理的對象在ioc中成為BeanDI
注入依賴
- 注入資料的三種資料類型 普通資料類型 引用資料類型 集合資料類型
在容器中建立bean與bean之間的依賴關系的整個過程,稱為依賴注入。
在pom.xml中引入spring架構:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
set依賴注入:修改xml中的資料
<bean id="bookdao" class="com.zx.dao.impl.BookDaoImpl"/>
<!--<bean id="bookservice" class="com.zx.service.impl.BookServiceImpl">-->
<!-- <property name="ibookdao" ref="bookdao"></property>-->
<!-- </bean>-->
在service中書寫set方法
public class BookServiceImpl implements IBookService {
private IBookDao ibookdao;
public void setIbookdao(IBookDao ibookdao) {
this.ibookdao = ibookdao;
}
public void save() {
ibookdao.save();
System.out.println("book service........");
}
}
實作類:
public class App {
public static void main(String[] args) {
// System.out.println("hello maven!");
ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");
IBookService bookservice = (IBookService)ctx.getBean("bookservice");
bookservice.save();
}
}
p命名空間注入(類似于set注入)
首先,需要引入P命名空間:
xmlns:p="http://www.springframework.org/schema/p"
構造方法注入
建立有參構造
public class UserServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl() {
}
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void save() {
userDao.save();
}
}
ApplicationContext中修改
<bean id="bookservice" class="com.zx.service.impl.BookServiceImpl">
<constructor-arg name="ibookdao" ref="bookdao"></constructor-arg>
</bean>
修改service實作類中代碼:
public class BookServiceImpl implements IBookService {
private IBookDao ibookdao;
public BookServiceImpl() {
}
public BookServiceImpl(IBookDao ibookdao) {
this.ibookdao = ibookdao;
}
/*
private IBookDao ibookdao;
public void setIbookdao(IBookDao ibookdao) {
this.ibookdao = ibookdao;
}
這個為set構造或者p命名空間構造
*/
public void save() {
ibookdao.save();
System.out.println("book service........");
}
}