1.知识点总结:
spring框架:
简介:
优点 : 1)解耦
2)可以整合其他 有优秀的框架, mybatis....
3)可以利用 aop 面向 切面编程 完成整体 项目治理
4)整合 持久层的 事务;
spring的入门:
1)进入官网 下载jar包
2)使用 下载后的jar包
spring入门 :
导入: 4+1 :core ,beans ,context ,expression ,comm-logging(依赖包)
其下载地址:https://repo.spring.io/release/org/springframework/spring/
spring的核心技术:
Ioc / DI
Invers of control 控制反转
dependency Inject 依赖注入
4)导入配置文件
spring.xml或applicationContext.xml
==================
spring框架 依赖注入的方式有几种:
1)构造器注入 使用时 必须 留有一个 无参数的构造器
2)setter方法注入 最常用
3)p:命名空间注入:<p: name>
4)接口注入 :侵入性强 没人用
2.案例代码:
1)工程架构图:
2)代码:
1.com.oracle.dao包:
package com.oracle.dao;
import com.oracle.vo.User;
public interface UserDao {
public void addUser(User user);
}
2.com.oracle.daoImpl包:
package com.oracle.daoImpl;
import com.oracle.dao.UserDao;
import com.oracle.vo.User;
public class UserDaoImpl implements UserDao {
@Override
public void addUser(User user) {
System.out.println("我是Spring的DI技术...");
}
}
3.com.oracle.service包:
package com.oracle.service;
import com.oracle.vo.User;
public interface UserService {
public void addUser(User user);
}
4.com.oracle.serviceImpl包:
package com.oracle.serviceImpl;
import com.oracle.dao.UserDao;
import com.oracle.service.UserService;
import com.oracle.vo.User;
public class UserServiceImpl implements UserService {
//依赖
UserDao userDao;
//注入
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void addUser(User user) {
//System.out.println("我是spring的IOC技术");
userDao.addUser(new User());
}
}
5.com.oracle.test包:
package com.oracle.test;
import com.oracle.service.UserService;
import com.oracle.vo.User;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserTest {
@Test
public void UserIOC(){
ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext("config/applicationContext.xml");
UserService userService = (UserService)c.getBean("userServiceId");
userService.addUser(new User());
}
@Test
public void UserDI(){
ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext("config/applicationContext.xml");
UserService userService = (UserService) c.getBean("userServiceId");
userService.addUser(new User());
}
}
6.com.oracle.vo包:
package com.oracle.vo;
public class User {
private String name;
}
7.config包:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 将指定的类放在这个配置文件中
Spring的IOC:将创建对象的权力交由Spring容器管理
这个过程就是IOC 控制反转
-->
<bean id="userServiceId" class="com.oracle.serviceImpl.UserServiceImpl">
<!-- 依赖注入...-->
<property name="userDao" ref="userDaoId"></property>
</bean>
<bean id="userDaoId" class="com.oracle.daoImpl.UserDaoImpl"></bean>
</beans>