就不用Spring,Struts2挂载MyBatis
来源:互联网 发布:c语言黑马教程百度云 编辑:程序博客网 时间:2024/06/01 09:10
Hibernate,为了DAO的ORMapping,生生把SQL的优良特性给腰斩完蛋了。比起来更喜欢MyBatis,不失SQL的灵活。
但,MyBatis怎么挂载到Struts2中呢?搜遍大江南北都是利用Spring——你们还有没有点新鲜玩意儿?说白了,就是我这个小小的项目用Sping不是杀鸡用牛刀吗,而且Sping的复杂度让人望而却步。
研究了一下发现不过是利用Sping的DI加载MyBatis模块。赵本山说了,别控制!
查了一下Struts2自带Dependency Injection别控制模块,和Google的Dependency Injection框架Guice(发音:果汁)出自同人之手。何不拿来一用涅?
关子卖光了,下面是解决方法:
1.先来个自制MyBatis的SqlSessionFactoryBuilder
public class PointSqlSessionFactoryBuilder { private SqlSessionFactory sqlFactory; public SqlSessionFactory getSqlFactory() { return sqlFactory; } // 注入配置文件的地址 @Inject("point.resource.db") public PointSqlSessionFactoryBuilder(String resource) throws IOException { Reader reader = Resources.getResourceAsReader(resource); sqlFactory = new SqlSessionFactoryBuilder().build(reader); }}
2.再来个自制的Action基类
public class PointActionSupport extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; // 注入已构建的SqlSessionFactoryBuilder @Inject("SqlSessionFactoryBuilder") private PointSqlSessionFactoryBuilder sqlFactoryBuilder; // 打开连接 protected SqlSession openSqlSession() { return sqlFactoryBuilder.getSqlFactory().openSession(); }}
Struts.xml中追加注入信息:
数据库配置文件地址
单例模式配置MyBatis数据连接工厂
<constant name="point.resource.db" value="com/point/db/SQLMapConfig.xml" /> <bean name="SqlSessionFactoryBuilder" class="com.point.common.core.PointSqlSessionFactoryBuilder" scope="singleton" />
大功告成!启动后,MyBatis模块被自动加载,可以使用Mapper啦!
总结:
1.用Struts的依赖注入模块,可以动态加载自己的Bean和常量。常看到有人问是否可以定义什么常量然后读取(比如文件上传下载的后缀等),看来是可以的。
2.@inject可以在变量,方法,构造函数上使用。满足简单的应用,没问题。
3.Struts2中Action都是线程安全的,因此本构造应该不存在线程安全问题。
4.MyBatis的SqlSession是线程不安全的,应该随取随用随丢。
- 就不用Spring,Struts2挂载MyBatis
- spring + struts2 + mybatis整合
- spring+struts2+mybatis整合
- Struts2+mybatis+Spring+Maven
- Spring+Struts2+Mybatis
- struts2 spring mybatis整合
- struts2+spring+mybatis整合
- Spring+Struts2+Mybatis整合
- spring,mybatis,struts2结合
- spring+struts2+hibernate+mybatis
- Spring+Struts2+MyBatis集成
- spring+struts2+mybatis整合
- spring+mybatis+struts2整合
- Spring+Mybatis+Hibernate+Struts2
- Struts2、Mybatis、Spring整合
- struts2+spring+mybatis
- mybatis不用spring下的操作
- mybatis+spring+struts2框架整合
- 导入Excel至数据库中 "外部表不是预期格式"错误信息
- CSDN朋友的博客,值得学习
- 创新源于模仿之六:仿iPhone的分组列表做一个配置界面
- clear
- cp 快速备份 bash{} 扩展
- 就不用Spring,Struts2挂载MyBatis
- ContextMenu
- (转)CakePHP你必须知道的21条技巧
- 用smb实现Linux
- 编辑距离、拼写检查与度量空间:一个有趣的数据结构
- AIX命令详解
- Fedora 14 打印机配置 (printer for fedora 14)
- 嵌入式linux下jffs2文件系统的实现
- iphone和flash