- 浏览: 693898 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
在上一篇文章《bboss mvc文件上传下载实战演练》
http://yin-bp.iteye.com/blog/1130035
中介绍了采用bboss mvc、aop/ioc、persistent组合完成文件上传、存储到数据库、从数据库中下载文件的基本功能,我们看到了如何通过MultipartHttpServletRequest获取上传文件,如何通过SQLExecutor/ConfigSQLExecutor中操作blob字段的api存储和读取文件的基本功能:
FieldRowHandler(获取blob为文件的字段行处理器)
NullRowHandler
本文作为上篇的进阶补充,介绍直接绑定MultipartFile对象或者MultipartFile数组到控制其方法参数或者po对象属性的案例。
对应的eclipse工程和运行demo可在本文的附件中下载:
http://dl.iteye.com/topics/download/c7393bc6-b8ee-3dd5-b4b3-e969ea63dbc0
demo工程中包含了derby数据库文件目录database,部署到tomcat中运行之前需要修改/src/poolman.xml文件中dburl路径为相应物理路径的下的database/cimdb,编译后即可。
启动tomcat, 访问的地址还是:
http://localhost:8080/bbossupload/upload/main.page
第一部分 本文的技术要点:
1. 控制器方法参数绑定机制增加MultipartFile、MultipartFile[]类型绑定支持,可以和RequestParam注解一起使用,也可以直接使用(默认获取第一个input[file]域对应的附件),使用方法如下:
public String uploadFileWithMultipartFile(@RequestParam(name="upload1") MultipartFile file,
ModelMap model)
public String uploadFileWithMultipartFiles(@RequestParam(name="upload1") MultipartFile[] files,
ModelMap model)
public String uploadFileWithMultipartFile( MultipartFile file,
ModelMap model)
public String uploadFileWithMultipartFiles(MultipartFile[] files,
ModelMap model)
2. PO对象属性数据绑定机制增加MultipartFile、MultipartFile[]类型绑定支持,可以和RequestParam注解一起使用,也可以直接与属性名称直接绑定,使用方法如下:
public String uploadFileWithFileBean(FileBean files)
FileBean是一个自定义的java bean,结构如下:
3. 改进的SQLParams api,可以直接对MultipartFile对象存入clob或者blob列。
sqlparams.addSQLParam("FILECONTENT", multipartfile,SQLParams.BLOBFILE);
对于大字段的处理建议采用以下方法:
sqlparams.addSQLParam("FILECONTENT", multipartfile,SQLParams.BLOBFILE);//直接传递MultipartFile对象进行插入
sqlparams.addSQLParam("FILECONTENT", inputStream, size,SQLParams.BLOBFILE);//直接传递InputStream对象以及流大小Size属性进行插入
一个完整的插入大字段的实例:
或者
4. FieldRowHandler处理器,实现从blob/clob中获取单个字段文件对象的处理,其他类似类型数据也可以使用FieldRowHandler,使用示例如下:
第二部分 相关的实现细节
由于上篇文章已经详细介绍了上传下载的代码详细情况,本文中只介绍MultipartFile控制器方法绑定和存储到数据库中部分实现以及下载方法实例,完整的代码请下载附件中的eclipse工程直接运行demo就可以了。
1.控制器方法
2.持久层dao实现部分:
代码都很简单,也非常容易理解,这里不做过多的解释。有问题可以留言讨论,也可以加入群组:
21220580
3625720
154752521
官方网站:
http://www.bbossgroups.com/
http://yin-bp.iteye.com/blog/1130035
中介绍了采用bboss mvc、aop/ioc、persistent组合完成文件上传、存储到数据库、从数据库中下载文件的基本功能,我们看到了如何通过MultipartHttpServletRequest获取上传文件,如何通过SQLExecutor/ConfigSQLExecutor中操作blob字段的api存储和读取文件的基本功能:
FieldRowHandler(获取blob为文件的字段行处理器)
NullRowHandler
本文作为上篇的进阶补充,介绍直接绑定MultipartFile对象或者MultipartFile数组到控制其方法参数或者po对象属性的案例。
对应的eclipse工程和运行demo可在本文的附件中下载:
http://dl.iteye.com/topics/download/c7393bc6-b8ee-3dd5-b4b3-e969ea63dbc0
demo工程中包含了derby数据库文件目录database,部署到tomcat中运行之前需要修改/src/poolman.xml文件中dburl路径为相应物理路径的下的database/cimdb,编译后即可。
启动tomcat, 访问的地址还是:
http://localhost:8080/bbossupload/upload/main.page
第一部分 本文的技术要点:
1. 控制器方法参数绑定机制增加MultipartFile、MultipartFile[]类型绑定支持,可以和RequestParam注解一起使用,也可以直接使用(默认获取第一个input[file]域对应的附件),使用方法如下:
public String uploadFileWithMultipartFile(@RequestParam(name="upload1") MultipartFile file,
ModelMap model)
public String uploadFileWithMultipartFiles(@RequestParam(name="upload1") MultipartFile[] files,
ModelMap model)
public String uploadFileWithMultipartFile( MultipartFile file,
ModelMap model)
public String uploadFileWithMultipartFiles(MultipartFile[] files,
ModelMap model)
2. PO对象属性数据绑定机制增加MultipartFile、MultipartFile[]类型绑定支持,可以和RequestParam注解一起使用,也可以直接与属性名称直接绑定,使用方法如下:
public String uploadFileWithFileBean(FileBean files)
FileBean是一个自定义的java bean,结构如下:
public class FileBean { private MultipartFile upload1; @RequestParam(name="upload1") private MultipartFile[] uploads; @RequestParam(name="upload1") private MultipartFile anupload; //省略属性的get/set方法 }
3. 改进的SQLParams api,可以直接对MultipartFile对象存入clob或者blob列。
sqlparams.addSQLParam("FILECONTENT", multipartfile,SQLParams.BLOBFILE);
对于大字段的处理建议采用以下方法:
sqlparams.addSQLParam("FILECONTENT", multipartfile,SQLParams.BLOBFILE);//直接传递MultipartFile对象进行插入
sqlparams.addSQLParam("FILECONTENT", inputStream, size,SQLParams.BLOBFILE);//直接传递InputStream对象以及流大小Size属性进行插入
一个完整的插入大字段的实例:
String sql = ""; try { sql = "INSERT INTO filetable (FILENAME,FILECONTENT,fileid,FILESIZE) VALUES(#[filename],#[FILECONTENT],#[FILEID],#[FILESIZE])"; SQLParams sqlparams = new SQLParams(); sqlparams.addSQLParam("filename", filename, SQLParams.STRING); sqlparams.addSQLParam("FILECONTENT", inputStream, size,SQLParams.BLOBFILE); sqlparams.addSQLParam("FILEID", UUID.randomUUID().toString(),SQLParams.STRING); sqlparams.addSQLParam("FILESIZE", size,SQLParams.LONG); SQLExecutor.insertBean(sql, sqlparams); } catch (Exception ex) { ex.printStackTrace(); result = false; throw new Exception("上传附件关联临控指令布控信息附件失败:" + ex); } finally { if(inputStream != null){ inputStream.close(); } }
或者
public void uploadClobFile(MultipartFile file) throws Exception { String sql = ""; try { sql = "INSERT INTO CLOBFILE (FILENAME,FILECONTENT,fileid,FILESIZE) VALUES(#[filename],#[FILECONTENT],#[FILEID],#[FILESIZE])"; SQLParams sqlparams = new SQLParams(); sqlparams.addSQLParam("filename", file.getOriginalFilename(), SQLParams.STRING); sqlparams.addSQLParam("FILECONTENT", file,SQLParams.CLOBFILE); sqlparams.addSQLParam("FILEID", UUID.randomUUID().toString(),SQLParams.STRING); sqlparams.addSQLParam("FILESIZE", file.getSize(),SQLParams.LONG); SQLExecutor.insertBean(sql, sqlparams); } catch (Exception ex) { throw new Exception("上传附件关联临控指令布控信息附件失败:" + ex); } }
4. FieldRowHandler处理器,实现从blob/clob中获取单个字段文件对象的处理,其他类似类型数据也可以使用FieldRowHandler,使用示例如下:
public File getDownloadClobFile(String fileid) throws Exception { try { return SQLExecutor.queryTField( File.class, new FieldRowHandler<File>() { @Override public File handleField( Record record) throws Exception { // 定义文件对象 File f = new File("d:/",record.getString("filename")); // 如果文件已经存在则直接返回f if (f.exists()) return f; // 将blob中的文件内容存储到文件中 record.getFile("filecontent",f); return f; } }, "select * from CLOBFILE where fileid=?", fileid); } catch (Exception e) { throw e; } }
第二部分 相关的实现细节
由于上篇文章已经详细介绍了上传下载的代码详细情况,本文中只介绍MultipartFile控制器方法绑定和存储到数据库中部分实现以及下载方法实例,完整的代码请下载附件中的eclipse工程直接运行demo就可以了。
1.控制器方法
public class UploadController { ............... /** * 直接使用MultipartHttpServletRequest 获取附件信息的方法 * @param request * @param model * @param idNum * @param type * @param des * @param byid * @return */ public String uploadFile(MultipartHttpServletRequest request, ModelMap model) { Iterator<String> fileNames = request.getFileNames(); // 根据服务器的文件保存地址和原文件名创建目录文件全路径 try { while (fileNames.hasNext()) { String name = fileNames.next(); MultipartFile[] files = request.getFiles(name); // file.transferTo(dest) for(MultipartFile file:files) { String filename = file.getOriginalFilename(); if (filename != null && filename.trim().length() > 0) { uploadService.uploadFile(file.getInputStream(), file .getSize(), filename); } } } } catch (Exception ex) { ex.printStackTrace(); } return "path:ok"; } /** * RequestParam注解和MultipartFile结合绑定参数方法,将参数upload1对应的附件直接以MultipartFile对象传入控制方法,简单又便捷,附件将被存储到derby数据库的blob字段中。 * @param request * @param model * @param idNum * @param type * @param des * @param byid * @return */ public String uploadFileWithMultipartFile(@RequestParam(name="upload1") MultipartFile file, ModelMap model) { // 根据服务器的文件保存地址和原文件名创建目录文件全路径 try { String filename = file.getOriginalFilename(); if (filename != null && filename.trim().length() > 0) { uploadService.uploadFile(file.getInputStream(), file .getSize(), filename); } } catch (Exception ex) { ex.printStackTrace(); } return "path:ok"; } /** * RequestParam注解和MultipartFile结合绑定参数方法,将参数upload1对应的附件直接以MultipartFile对象传入控制方法,简单又便捷,附件将被存储到derby数据库的clob字段中。 * @param request * @param model * @param idNum * @param type * @param des * @param byid * @return */ public String uploadFileClobWithMultipartFile(@RequestParam(name="upload1") MultipartFile file, ModelMap model) { // 根据服务器的文件保存地址和原文件名创建目录文件全路径 try { uploadService.uploadClobFile(file); } catch (Exception ex) { ex.printStackTrace(); } return "path:ok"; } /** * RequestParam注解和MultipartFile[]结合绑定参数方法,将参数upload1(页面上有多个upload1 file input元素)对应的附件直接以MultipartFile[]对象传入控制方法,简单又便捷,附件将被存储到derby数据库的blob字段中。 * @param request * @param model * @param idNum * @param type * @param des * @param byid * @return */ public String uploadFileWithMultipartFiles(@RequestParam(name="upload1") MultipartFile[] files, ModelMap model) { // 根据服务器的文件保存地址和原文件名创建目录文件全路径 try { { // file.transferTo(dest) for(MultipartFile file:files) { String filename = file.getOriginalFilename(); if (filename != null && filename.trim().length() > 0) { uploadService.uploadFile(file.getInputStream(), file .getSize(), filename); } } } } catch (Exception ex) { ex.printStackTrace(); } return "path:ok"; } /** * 本方法演示了po对象中绑定MultipartFile属性的功能。FileBean的结构如下: private MultipartFile upload1; @RequestParam(name="upload1") private MultipartFile[] uploads; @RequestParam(name="upload1") private MultipartFile anupload; 上面的结构展示了不同属性绑定方式。 * @param request * @param model * @param idNum * @param type * @param des * @param byid * @return */ public String uploadFileWithFileBean(FileBean files, ModelMap model) { try { //进行相应的处理 } catch (Exception ex) { ex.printStackTrace(); } return "path:ok"; } /** * 查询数据库的操作也只好放在控制器中处理 * @param fileid * @param request * @param response * @throws Exception */ public void downloadFileFromBlob( @RequestParam(name = "fileid") String fileid, HttpServletRequest request, HttpServletResponse response) throws Exception { uploadService.downloadFileFromBlob(fileid, request, response); } /** * 直接将blob对应的文件内容以相应的文件名响应到客户端,需要提供request和response对象 * 这个方法比较特殊,因为derby数据库的blob字段必须在statement有效范围内才能使用,所以采用了空行处理器,来进行处理 * 查询数据库的操作也只好放在控制器中处理 * @param fileid * @param request * @param response * @throws Exception */ public void downloadFileFromClob( @RequestParam(name = "fileid") String fileid, HttpServletRequest request, HttpServletResponse response) throws Exception { uploadService.downloadFileFromClob(fileid, request, response); } /** * 将数据库中存储的文件内容转储到应用服务器文件目录中,然后将转储的文件下载,无需提供response和request对象 * * @param fileid * @return * @throws Exception */ public @ResponseBody File downloadFileFromFile(@RequestParam(name = "fileid") String fileid) throws Exception { return uploadService.getDownloadFile(fileid); } public @ResponseBody File downloadFileFromClobFile(@RequestParam(name = "fileid") String fileid) throws Exception { return uploadService.getDownloadClobFile(fileid); } ......
2.持久层dao实现部分:
public class UpLoadDaoImpl implements UpLoadDao { @Override /** * CREATE TABLE CLOBFILE ( FILEID VARCHAR(100), FILENAME VARCHAR(100), FILESIZE BIGINT, FILECONTENT CLOB(2147483647) ) */ public void uploadClobFile(MultipartFile file) throws Exception { String sql = ""; try { sql = "INSERT INTO CLOBFILE (FILENAME,FILECONTENT,fileid,FILESIZE) VALUES(#[filename],#[FILECONTENT],#[FILEID],#[FILESIZE])"; SQLParams sqlparams = new SQLParams(); sqlparams.addSQLParam("filename", file.getOriginalFilename(), SQLParams.STRING); sqlparams.addSQLParam("FILECONTENT", file,SQLParams.CLOBFILE); sqlparams.addSQLParam("FILEID", UUID.randomUUID().toString(),SQLParams.STRING); sqlparams.addSQLParam("FILESIZE", file.getSize(),SQLParams.LONG); SQLExecutor.insertBean(sql, sqlparams); } catch (Exception ex) { throw new Exception("上传附件关联临控指令布控信息附件失败:" + ex); } } /** * 上传附件 * @param inputStream * @param filename * @return * @throws Exception */ public boolean uploadFile(InputStream inputStream,long size, String filename) throws Exception { boolean result = true; String sql = ""; try { sql = "INSERT INTO filetable (FILENAME,FILECONTENT,fileid,FILESIZE) VALUES(#[filename],#[FILECONTENT],#[FILEID],#[FILESIZE])"; SQLParams sqlparams = new SQLParams(); sqlparams.addSQLParam("filename", filename, SQLParams.STRING); sqlparams.addSQLParam("FILECONTENT", inputStream, size,SQLParams.BLOBFILE); sqlparams.addSQLParam("FILEID", UUID.randomUUID().toString(),SQLParams.STRING); sqlparams.addSQLParam("FILESIZE", size,SQLParams.LONG); SQLExecutor.insertBean(sql, sqlparams); } catch (Exception ex) { ex.printStackTrace(); result = false; throw new Exception("上传附件关联临控指令布控信息附件失败:" + ex); } finally { if(inputStream != null){ inputStream.close(); } } return result; } public File getDownloadFile(String fileid) throws Exception { try { return SQLExecutor.queryTField( File.class, new FieldRowHandler<File>() { @Override public File handleField( Record record) throws Exception { // 定义文件对象 File f = new File("d:/",record.getString("filename")); // 如果文件已经存在则直接返回f if (f.exists()) return f; // 将blob中的文件内容存储到文件中 record.getFile("filecontent",f); return f; } }, "select * from filetable where fileid=?", fileid); } catch (Exception e) { throw e; } } public File getDownloadClobFile(String fileid) throws Exception { try { return SQLExecutor.queryTField( File.class, new FieldRowHandler<File>() { @Override public File handleField( Record record) throws Exception { // 定义文件对象 File f = new File("d:/",record.getString("filename")); // 如果文件已经存在则直接返回f if (f.exists()) return f; // 将blob中的文件内容存储到文件中 record.getFile("filecontent",f); return f; } }, "select * from CLOBFILE where fileid=?", fileid); } catch (Exception e) { throw e; } } @Override public void deletefiles() throws Exception { SQLExecutor.delete("delete from filetable "); SQLExecutor.delete("delete from CLOBFILE "); } @Override public List<HashMap> queryfiles() throws Exception { return SQLExecutor.queryList(HashMap.class, "select FILENAME,fileid,FILESIZE from filetable"); } @Override public List<HashMap> queryclobfiles()throws Exception { return SQLExecutor.queryList(HashMap.class, "select FILENAME,fileid,FILESIZE from CLOBFILE"); } @Override public void downloadFileFromBlob(String fileid, final HttpServletRequest request, final HttpServletResponse response) throws Exception { try { SQLExecutor.queryByNullRowHandler(new NullRowHandler() { @Override public void handleRow(Record record) throws Exception { StringUtil.sendFile(request, response, record .getString("filename"), record .getBlob("filecontent")); } }, "select * from filetable where fileid=?", fileid); } catch (Exception e) { throw e; } } @Override public void downloadFileFromClob(String fileid, final HttpServletRequest request, final HttpServletResponse response) throws Exception { try { SQLExecutor.queryByNullRowHandler(new NullRowHandler() { @Override public void handleRow(Record record) throws Exception { StringUtil.sendFile(request, response, record .getString("filename"), record .getClob("filecontent")); } }, "select * from CLOBFILE where fileid=?", fileid); } catch (Exception e) { throw e; } } }
代码都很简单,也非常容易理解,这里不做过多的解释。有问题可以留言讨论,也可以加入群组:
21220580
3625720
154752521
官方网站:
http://www.bbossgroups.com/
- bbossupload.zip (9 MB)
- 下载次数: 35
发表评论
-
bboss 持久层数据源引用外部属性配置介绍
2018-12-29 21:47 1078bboss 持久层数据源外部属性配置引用介绍 bboss持久 ... -
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 907bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss持久层开启和关闭自带主键机制
2017-08-17 11:56 747bboss持久层开启和关闭自带主键机制 请访问文档: bbos ... -
bboss高性能db批处理功能使用方法介绍
2017-05-14 21:28 2132bboss持久层在v5.0.3.5中新增简单的高效的db批处理 ... -
bboss持久层公共sql片段定义和引用方法说明
2017-03-03 13:05 1121bboss持久层公共sql片段定义和引用方法说明 在配置sq ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 740bboss mvc json插件设置日期类型格式方法 一般的 ... -
最新版本mysql jdbc驱动包获取表定义信息空指针异常处理方法
2016-12-15 10:24 1352在使用最新的mysql-connector-java 6.0. ... -
bboss mvc控制器实现etag和last modify两种http缓存机制
2016-09-07 23:48 1260bboss mvc控制器实现etag和last modify两 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 568bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
持久层快速入门系列一
2016-08-19 13:00 1256持久层快速入门 先在应用中导入bboss 持久层(bboss ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 915首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss 持久层sql xml配置文件编写和加载方法介绍
2016-04-05 13:14 1659bboss 持久层sql xml配置文件编写和加载方法介绍 通 ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5934解决tomcat stop报Illegal access: t ... -
bboss持久层设置数据库查询fetchsize参数方法
2015-11-06 11:54 1015bboss持久层设置数据库查询fetchsize参数方法 j ... -
bboss持久层快速入门教程
2015-09-19 13:49 1587bboss持久层快速入门教程,快速搭建bboss持久层的开 ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss持久层数据库适配器编写和注册方法
2015-02-06 15:21 974bboss持久层数据库适配器编写和注册方法 bboss持久层默 ... -
bboss模糊查询、动态sql、批处理资料荟萃
2015-01-30 12:03 2364bboss模糊查询、动态sql、批处理资料荟萃 bboss持 ... -
bboss持久层查询元数据缓存机制开启方法
2014-11-18 12:03 1019bboss持久层为了提升数据库查询操作性能,提供了对查 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1047@RequestBody可以将客户端请求报文体通过数据类型转换 ...
相关推荐
- 安装与配置指南:如何下载和设置BBoss MVCDemo环境,包括JDK、应用服务器(如Tomcat)、数据库等的配置。 - 快速入门:简单的示例展示如何创建第一个BBoss MVCDemo应用,包括编写控制器、模型和视图。 - 请求处理...
标题中的“bboss mvc 通过jsonp实现跨站跨域远程访问”指的是使用bboss MVC框架来处理JSONP(JSON with Padding)请求,以克服浏览器的同源策略限制,实现跨域数据交互。bboss MVC是一个Java Web开发框架,它提供了...
本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
bboss-mvc.xml是bboss MVC的核心配置文件,它定义了系统的全局设置,如视图解析器(View Resolver)和消息源(Message Source)。视图解析器负责将处理结果转换为用户可以查看的页面,例如JSP。在这里,配置了...
官方版本,亲测可用
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
5. **高级功能**: 学习如何利用 BBoss 进行聚合分析、自定义插件开发、性能优化等进阶操作。 **五、视频教程** 1. **搭建bboss elasticsearch开发环境.wmv**: 这个视频将指导你完成从安装Elasticsearch到配置BBoss...
该项目是基于Java语言的bboss开源框架构建的设计源码,包含3075个文件,涵盖2700个Java源文件、85个XML配置文件、52个HTML文件、39个properties和prefs文件、23个GIF图片、18个Gradle文件、17个gitignore文件、10个...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...
3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...
bboss-datatran 支持多种数据源的接入,如关系型数据库(MySQL、Oracle等)、NoSQL数据库(HBase、MongoDB等)、消息队列(Kafka、RabbitMQ等)以及文件系统(HDFS、FTP等)。通过内置的适配器,用户可以方便地将...