彼方尚有荣光剑开天门

spring初学 1

吕洞玄·2022-07-07 15:19·18 次阅读

spring初学 1

先导包:

org.springframework spring-webmvc 5.3.21

Dao层
写一个接口注意是interface类型!

写这个接口的实现类

业务层:
因为它起到的作用和Dao层类似,所以直接写成一样的。

实现类:

调用的是Dao层的接口,所以new一个对象。

测试一下,new一个业务层的对象。
`import com.www.service.UserServiceImpl;
import com.www.userDao.UserDao;
import com.www.userDao.UserDaoImpl;

public class mytest1 {
public static void main(String[] args)
{
//用户调用的是业务层,Dao层用户不会去接触
//业务层调用Dao层去查。
UserServiceImpl userService = new UserServiceImpl();
userService.getUser();
}
}
`

再增加一个实现类:

想要实现这个类,有两种方法,一种是再创建一个测试,里面直接调用这个类(不推荐!!!)
`import com.www.userDao.UserDaoMySqlImpl;

public class mytest2 {
public static void main(String[] args)
{
//用户调用的是业务层,Dao层用户不会去接触
//业务层调用Dao层去查。
UserDaoMySqlImpl userDaoMySql = new UserDaoMySqlImpl();
userDaoMySql.getUser();
}
}
`
另一种就是改原本调用类里面的接口

里面的UserDaoImpl()改成UserDaoMySqlImpl()
这样也可实现,但是这个更改了我们的代码,所以也很麻烦。
需求再增加时,还得去改这个位置。
代码量非常大。
尽量让自己的程序不动,让它自适应。

因此产生了如下写法:

用set方法实现动态注入
在test中传入数据

用户的需求不会再修改我们的源代码,不会破环程序稳定性。
使用一个set接口好处:之前程序主动创建对象,控制权在程序员手上,用了set注入后程序变成了被动的接收对象。
这就是控制反转。
这种思想从本质上解决了问题,程序员不必再管理对象的创建,系统耦合性大大降低,可以更加专注地在业务实现上。
这是ioc的原型。

posted @   吕洞玄  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示