目录
最后创建测试类:创建serclet包 里面创建四个测试类BookServlet、Test01、Test02、Test03
一、Spring 概述
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
spring作用:主要解决了创建对象和管理对象的问题。
Spring 的核心:
IOC(Inversion of Control):控制反转,即对象创建的问题
AOP(Aspect Oriented Programming):面向切面编程
IOC和DI
IOC:控制反转,把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现组件的装配和管理,本质就是对象的调用权的转移,将创建对象的权利交给了容器
DI:依赖注入,在运行期,由外部容器动态地将依赖对象注入到另一个对象中
IOC描述的是一种思想,DI是对IOC思想的具体实现
二、Spring对Bean的管理
1、创建bean的方式
1.默认使用构造函数创建
在Spring的配置文件中使用bean标签,配置 id 和 class 属性后,没有其他属性和标签时,采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造函数,则对象无法创建。
案例:
首先导入spring所需要的架包:
http://链接:https://pan.baidu.com/s/1RsEcnBVAD50m86m5kdEKpw?pwd=1314 提取码:1314
在src中创建一个spring.xml配置文件
链接:https://pan.baidu.com/s/1EuTHmIlHME6m-IJlyBp5Lw?pwd=1314
提取码:1314
spring.xml配置文件:
<?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">
<!--告诉spring框架 创建管理哪些对象
id:给创建出的对象起一个名字
class:要创建对象对应类的全类名
-->
<bean id="bookDao" class="com.nai.dao.impl.BookDaoImpl"></bean>
<bean id="bookService" class="com.nai.service.impl.BookServiceImpl">
<!--通过property 给类的属性进行主入数据:默认使用的是setter方法
常规类型使用value注入
对象使用ref引用上面定义的:
-->
<property name="name" value="张三"/>
<property name="age" value="22"/>
<property name="bookDao" ref="bookDao"/>
</bean>
</beans>
spring整体结构:
相应代码:
com.nai.dao.impl中创建一个BookDao接口和BookDaoImpl实现类
BooKDao接口:
package com.nai.dao;
public interface BookDao {
public void insert();
}
BookDaoImpl类:
package com.nai.dao.impl;
import com.nai.dao.BookDao;
//实现类
public class BookDaoImpl implements BookDao {
@Override
public void insert() {
System.out.println("BookDaoImpl...save");
}
}
com.nai.service.impl中创建BookServiceImpl实现类、BookServiceVip实现类、和BookService接口
BookService接口:
package com.nai.service;
public interface BookService {
void save();
}
BookServiceImpl实现类:
package com.nai.service.impl;
import com.nai.dao.BookDao;
import com.nai.service.BookService;
public class BookServiceImpl implements BookService {
public String name;
public int age;
private BookDao bookDao;
public void setName(String na