了解spring架构
了解spring解决什么问题
spring核心概念
ioc和di的入门
springcore,aop,aspect实现aop思想
数据访问,事务,springmvc,test单元测试
spring解决的问题
dao层有一个接口save
public class UserDao{
pubic int save();
}
有一个实现类
public class UserDaoIml impllements UserDao{
@override
pubic int save(){
system.out.println("新增成功")
}}
service 有一个UserService接口和Service实现类
public class UserService{
pubic int save();
}
public class UserServiceImp impllements UserService{
private UserDao userdao=new UserDaoIml();//高度耦合,如果userdao层的save方法发生改变,需要重新编译,重新测试,重新发布
@override
pubic int save(){
userdao.save();
}}
spring core就是管理对象的 uservice需要dao对象 就找spring获取,userdao放入spring管理的对象叫做bean,但是service需要调用userdao的方法,就需要service和dao建立关系,spring创建的这个关系叫做依赖注入
ioc和di依赖注入的实现
导入spring包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency>
整体代码图
创建applicationContext配置文件
<?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标签表示配置bean--> <!-- id表示给bean起名字--> <!-- class表示给bean定义类型--> <bean id="userdao" class="com.itheima.dao.impl.UserDaoImpl"/> <bean name="userService" class="com.itheima.service.impl.UserServiceImpl"> <!-- 配置service与dao之间的关系--> <!-- prperty标签表示配置当前bean的属性--> <!-- name表示配置哪一个属性的--> <!-- ref表示参照哪一个bean--> <property name="userDao" ref="userdao"></property> </bean>
应用代码完成彻底解耦
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userdao = (UserDao) applicationContext.getBean("userdao"); UserService userService = (UserService) applicationContext.getBean("userService"); // userdao.save(); userService.save();
配置userservice
把dao注入到service中,service就可以使用