MVC框架-mentawai(12)
来源:互联网 发布:好用的网络云盘 编辑:程序博客网 时间:2024/06/08 08:32
控制反转
Mentawai 拥有一个与框架全面整合在一起并且功能强大的控制反转容器。因此,如果想使用控制反转和依赖注入,你不用使用任何其他的框架。 Mentawai 支持setter,构造器,小巧的auto-wiring等方式注入。下面我们来看如何容易做到这一点:
在应用管理器中创建
@Overridepublic void loadFilters() { filter(new MentaContainerFilter());}
NOTE: Mentawai的控制反转、依赖注入和Auto-wiring能力被提取到一个叫MentaContainer的单独工程里, 它依然可以无缝整合到框架中。
创建控制反转(IOC)
@Overridepublic void setupIoC() { ioc(UserDAO.class, JdbcUserDAO.class); // 对我的UserDAO接口, 我想使用JdbcUserDAO的实现}
进行依赖注入
既然你表明你在web应用中的JdbcUserDAO实现, 那么依赖注入就会无缝且自动进行,你无需关心任何事,例如:
public class UserAction extends BaseAction { private final UserDAO userDAO; public UserAction(UserDAO userDAO) { // <==== 构造器注入 this.userDAO = userDAO; } // (...)}
如果你更喜欢setter方式注入:
public class UserAction extends BaseAction { private UserDAO userDAO; public UserAction() { } public void setUserDAO(UserDAO userDAO) { // <===== Setter方式注入 this.userDAO = userDAO; } // (...)}
自动装配(Auto-wiring)
依赖装配同样也是无缝且自动的,同样,你不用关心任何事情,下面是个例子:
@Overridepublic void setupIoC() { ioc(BeanSession.class, MySQLBeanSession.class); ioc(UserDAO.class, JdbcUserDAO.class);}
看下面 JdbcUserDAO 依赖BeanSession的例子:
public class JdbcUserDAO implements UserDAO { private final BeanSession session; private final Connection conn; public JdbcUserDAO(BeanSession session) { this.session = session; this.conn = session.getConnection(); } // (...)}
Mentawai 将会自动检测到依赖,并且将对象组装到一起,换句话说,它将会通过BeanSession的实现(你声明MySQLBeanSession)注入到JdbcUserDao的构造器,不用做任何其他事情。
TIP: 控制反转使单元测试和功能测试更容易
阅读全文
0 0
- MVC框架-mentawai(12)
- MVC框架-Mentawai(1)
- MVC框架-Mentawai(2)
- MVC框架-Mentawai(3)
- MVC框架-mentawai(4)
- MVC框架-mentawai(5)
- MVC框架-mentawai(6)
- MVC框架-mentawai(7)
- MVC框架-mentawai(8)
- MVC框架-mentawai(9)
- MVC框架-mentawai(10)
- MVC框架-mentawai(11)
- MVC框架-mentawai(13)
- MVC框架(1)
- MVC模式(框架)
- MVC框架(二)
- MVC框架(二)
- MVC封装框架 第一步 (分析mvc框架运行流程)
- HTML+CSS编写静态网站-37 媒体查询初探
- 使用注解实现AOP
- Css 属性继承(防止自己 嘻嘻(*^__^*) 嘻嘻……)
- NOIP2017模拟赛(十三)总结
- 输入事件的传递过程
- MVC框架-mentawai(12)
- Objective-C持久化
- 一:redis3.x cluster集群
- 菜鸟Z学java的第5天
- 《Tomcat内核设计剖析》京东评论过百
- 菜鸟Z学java的第6天
- MyCnCart之商品选项功能
- 关于表单form元素中onsubmit事件处理机制的认识
- 新手小白如何在window把自己的项目上传到github