学习目标
- Spring面向接口编程
- Spring和web结合
- Spring和junit的整合*
- SpringJDBCTemplate增删改查
- Spring的AOP*
Spring面向接口编程-创建Web项目
- 接口 解耦
- 创建Project Maven
- 创建Module web app Maven
- 设置java,reousrces,test
- 配置依赖pom.xml
Spring面向接口编程-原理
- 接口定义
业务类接口com.xxx.service.IXxxService
Dao接口com.xxx.dao.IXxxDao
- 实现类
com.xxx.service.impl.XxxServiceImpl
com.xxx.dao.impl. XxxDaoImpl
- 一个接口有多个实现类,使用接口调用,将来更换实现类时,代码耦合底更低
判断方法:删除法
将来实现类对象由Spring管理,成员变量使用依赖注入
这没啥好说的就是平时我们写的面向接口编程,这种编程思想方便了我们迭代更新代码,增加了代码的利用率,看一下就过
TestPersonService
public class TestPersonService {
@Test
public void test01(){
//用户的一个功能 ,通常对应咱们的一个业务 方法
//IPersonService PersonServiceImpl
//PersonServiceImpl PersonServiceImpl
//PersonServiceImpl personService = new PersonServiceImpl();
IPersonService personService = new PersonServiceImpl();
//调了一个login
Person person = new Person();
boolean flag = personService.login(person);
System.out.println(flag);
}
}
src\main\java\com\vission\Dao\IPersonDao.java
public interface IPersonDao {
boolean findByUserNameAndPassword(Person person);
}
src\main\java\com\vission\Imp\PersonDaoImpl.java
public class PersonDaoImpl implements IPersonDao {
@Override
public boolean findByUserNameAndPassword(Person person) {
return true;
}
}
src\main\java\com\vission\Service\IPersonService.java
public class PersonServiceImpl implements IPersonService {
private IPersonDao dao = new PersonDaoImpl();
@Override
public boolean login(Person person) {
//..调用dao方法
boolean flag = dao.findByUserNameAndPassword(person);
return flag;
}
}
Spring面向接口编程-实现
今日的重点,如何使用Spring面向接口编程
- PersonServiceImplTest
- IPersonService
- PersonServiceImpl
- IPersonDao
- PersonDaoImpl
- Spring 注解 扫描
- Spring DI
src\main\java\com\vission\Dao\IPersonDao.java
public interface IPersonDao {
boolean findByUserNameAndPassword(Person person);
}
src\main\java\com\vission\Imp\PersonDaoImpl.java
@Repository
public class PersonDaoImpl implements IPersonDao {
@Override
public boolean findByUserNameAndPassword(Person person) {
return true;
}
}
src\main\java\com\vission\Service\IPersonService.java
public interface IPersonService {
boolean login(Person person);
}
src\main\java\com\vission\Imp\PersonServiceImpl.java
@Repository
public class PersonServiceImpl implements IPersonService {
@Autowired
@Qualifier("personDaoImpl")
private IPersonDao dao;
@Override
public boolean login(Person person) {
//..调用dao方法
Boolean flag = dao.findByUserNameAndPassword(person);
return flag;
}
}
TestPersonService
@Autowired
@Qualifier("personServiceImpl")
IPersonService personService;
@Autowired
@Qualifier("personDaoImpl")
IPersonDao iPersonDao;
@Test
public void test02() {
Person person = new Person();
System.out.println(personService.login(person));
//调了一个login
}