1.什么是Spring框架
Spring是一个开源的框架,Spring 为简化企业级开发而生,使用 Spring、JavaBean 就可以实现很多以前要靠 EJB 才能实现的功能,同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而使用Spring 却非常的优雅和简洁。
2.spring的两个核心
IOC:控制反转,把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现组件的装配和管理,本质就是对象的调用权的转移,将创建对象的权利交给了容器
DI:依赖注入,在运行期,由外部容器动态地将依赖对象注入到另一个对象中
3.如何搭建spring框架
①、先创建一个moudle,导入相关的jar包
②、然后创建好分层
dao层:负责数据持久化,与数据库进行联络的任务都封装在其中,Dao层的数据源以及相关的数据库连接参数都在Spring配置文件中进行配置。 Dao接口中的方法都大同小异,因为对数据库的基本操作类似:insert、delete、update,select。
BookDao:
public interface BookDao {
public void insert();
}
BookDaoImpl:
public class BookDaoImpl implements BookDao {
@Override
public void insert() {
System.out.println("BookDaoImpl...save");
}
}
BookDaoImpl继承BookDao
service层:对一些功能的处理
BookService:
public interface BookService {
void save();
}
BookServiceImpl:
public class BookServiceImpl implements BookService{
private String name;
private BookDao bookDao;
public void setName(String name) {
this.name = name;
}
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
@Override
public void save() {
System.out.println("BookServiceImpl...save");
bookDao.insert();
}
}
servlet层:客户端请求的服务器
BookServlet:
public class BookServlet {
BookService bookService;
@Test
public void add(){
System.out.println("BookServlet...add");
//1.获得IOC容器
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
//2.根据名字从容器中获取对象
bookService= (BookService) context.getBean("bookService");
bookService.save();
}
}
根据上面的名字获取上面的属性,构造方法,功能方法
完成创建spring的核心配置文件
<?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的IOC容器中,并起上名字
id:表示给对象起名字
class:类的全类名
-->
<bean id="bookDao" class="com.qi.dao.impl.BookDaoImpl"></bean>
<bean id="bookService" class="com.qi.service.impl.BookServiceImpl">
<!--spring的依赖注入:property表示BookServiceImpl的属性,常规属性使用value赋值,
类型属性使用ref引用-->
<property name="name" value="张三"/>
<property name="bookDao" ref="bookDao"/>
</bean>
</beans>
bean标签表示把对应class的对象创建到IOC容器中,如果当前对象有依赖的其他对象,那么可以
通过property对依赖的对象使用ref引用容器中已经注册过的对象。
注意:BookServiceImpl需要给bookDao属性设置setter方法,框架才能自动注入
BookServiceImpl中创建的属性对应spring框架中的bean