spring.version为4.3.10.RELEASE

aspectjweaver.version为1.8.10

libreoffice.version为5.2.0(juh、jurt、ridl、unoil四个相关jar包)

libreoffice核心包jodconverter-core为3.2-xwiki-SNAPSHOT

一、相关配置类 AppConfiguration

@Configuration //相当于beans.xml
@ComponentScan({"com.jingluu.converter.doc"}) //相当于 <context:component-scan base-package="com.jingluu.converter.doc"/>
@PropertySource({"classpath:converter.properties"}) //相当于 <context:property-placeholder location="classPath:converter.properties" />

二、web初始化加载 AppWebInitializer implements WebApplicationInitializer

     @Overridepublic void onStartup(ServletContext servletContext) throws ServletException {//注解配置web.xml上下文AnnotationConfigWebApplicationContext rootAppContext = new AnnotationConfigWebApplicationContext();//注册配置类/** 相当于加载beans.xml*  <context-param>*     <param-name>contextConfigLocation</param-name>*     <param-value>classpath:spring/applicationContext.xml</param-value>*  </context-param>*/rootAppContext.register(AppConfiguration.class); //设置ServletContext/** servlet上下文,相当于web.xml*/rootAppContext.setServletContext(servletContext);//添加监听器/** 相当于添加一个上下文监听* <listener>*      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>* </listener>*/ContextLoaderListener contextLoaderListener = new ContextLoaderListener(rootAppContext);/** 将配置的一个监听的机制存放到web.xml中*/servletContext.addListener(contextLoaderListener);}

三、ConverterProperties (获取我们在配置文件中内容)

@Component
public class ConverterProperties {@Value("${converter.office.home}")private String officeHome;@Value("${converter.office.ports}")private String officePorts;public String getOfficeHome() {return officeHome;}public String getOfficePorts() {return officePorts;}}

四、DocConverter 和 DocConverterImpl

public interface DocConverter {/*** 文本转换* @param from 初始文件路径* @param to 传出文件路径*/void converter(String from,String to);/*** 文本转换* @param from * @param to*/void converter(File from,File to);}

/*** office文档转换实现类* @author kif**/
@Component
public class DocConverterImpl implements DocConverter{@Autowiredprivate ConverterProperties converterProperties;//文件管理private OfficeManager officeManager;//文件转换private OfficeDocumentConverter offDocConverter;/*** @PostConstruct 声明该方法在构造函数执行完之后被调用,且仅调用一次* 相当于<init-method></init-method>*/@PostConstructpublic void start(){//配置DefaultOfficeManagerConfiguration cfg = new DefaultOfficeManagerConfiguration();//指定OpenOffice或LibreOffice安装的根目录cfg.setOfficeHome(converterProperties.getOfficeHome());//LibreOffice处理进程的端口,多个用逗号隔开(如果设置了多个端口,将会启动多个处理进程)String portsNumbers = converterProperties.getOfficePorts();if(portsNumbers != null && !"".equals(portsNumbers.trim())){String[] ports = portsNumbers.split(",");int[] portList = new int[ports.length];for(int i=0;i<ports.length;i++){portList[i] = Integer.valueOf(ports[i]);}cfg.setPortNumbers(portList);}//officeManagerofficeManager = cfg.buildOfficeManager();//OfficeDocumentConverter文档转换器offDocConverter = new OfficeDocumentConverter(officeManager);System.out.println("Converter initialized ...");//启动文档转换器进程officeManager.start();System.out.println("converter start ...");}/*** 进行转换*/public void converter(String from, String to) {this.converter(new File(from), new File(to));}@Overridepublic void converter(File from, File to) {offDocConverter.convert(from, to);}/*** 终止处理进程* @PreDestroy 声明该方法在Bean销毁前被调用,仅调用一次*/@PreDestroypublic void stop(){officeManager.stop();System.out.println("converter stop ...");}}

转载于:https://www.cnblogs.com/kongkongFabian/p/7497273.html

spring纯注解+libreoffice相关推荐

  1. 【Java从0到架构师】Spring - 纯注解开发

    纯注解开发 纯注解开发 - AOP 纯注解开发 - 整合 MyBatis 纯注解开发 - 事务管理 JSR 注解 JSR 注解 - @Resource.@Inject JSR 注解 - @PostCo ...

  2. Spring 纯注解定时任务

    @Component @EnableScheduling public class TimingAddSigndata { @Resource SigndataService signdataServ ...

  3. 纯注解开发配置spring

    1.纯注解开发[定义配置类的注解] ==@Confituration == 表示该类是一个配置类 ==@ComponentScan("com.itheima") == 配置包扫描 ...

  4. spring框架三种类型项目实现--基础maven类型、纯注解开发型、aop结合注解开发型

    spring框架实现 1.基础maven类型 1.开发准备--pom.xml添加spring依赖 2.创建properties文件 还是三层架构开发 3.domain层创建实体类javabean 4. ...

  5. SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP

    静态代理: 为什么要代理?在不改动原代码的基础上,丰富调用某个方法时实现的功能. 比如service类中原本update只会更新,但是通过代理类加上了判断权限和输出时间的功能. 其实这些功能也可以写在 ...

  6. SSM4==通过XML配置spring 事务,通过纯注解配置spring 事务

    mysql的事务管理,是指在有关系的表(比如有外键)之间实现ACID,比如表A的金额列的外键是表B的金额列,那么如果A的金额减了300,B的金额也要减少300.如果A减300成功了,B失败了,mysq ...

  7. SSM6==spring体系回顾,纯XML配置springMVC,纯注解配置springMVC

    spring全家桶 spring framework 官方文档: Spring Framework Reference Documentationhttps://docs.spring.io/spri ...

  8. SSM纯注解后台代码整合(Spring+SpringMvc+Mybatis)

    SSM后台整合(Spring+SpringMvc+Mybtis+事务+Rest风格+统一结果封装+统一异常处理+拦截器) 文章目录 1 基础环境搭建 1.1 建表 1.2 创建web项目 1.3 导入 ...

  9. 整合mybatis——使用纯注解整合、使用Mapper+Mapper.xml整合、使用mybatis.cfg.xml整合

    引入druid <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-b ...

  10. spring基于注解的IOC以及IoC的案例——概念

    1.spring中ioc的常用注解 2.案例使用xml方式和注解方式实现单表的CRUD操作     持久层技术选择:dbutils 3.改造基于注解的ioc案例,使用纯注解的方式实现     spri ...

最新文章

  1. 公共基因表达数据分析系统genevestigator,再也不愁表达数据的查询和比较了
  2. Office 365管理员指引 17——Sharepoint 讨论版
  3. convex function
  4. java的两种运行方式Applet和Application你真的懂吗
  5. 概要设计说明书案例_逆向前行,趁势而为外贸学院线上教学优秀案例展(七)...
  6. Android官方命令深入分析之Hierarchy Viewer
  7. 大型网站架构演化(二)——应用服务和数据服务分离
  8. HashMap, LinkedHashMap 和 TreeMap的区别
  9. tensorflow的keras 与 原生keras几点比较
  10. 在JSP中应用JavaBean
  11. 产品需求文档、需求结构图、数据字典、全局说明、用例描述、需求描述、逻辑流程、原型设计、页面交互、登录注册、词汇表、数据统计、用户表设计、接口需求、功能清单、业务流程图、Axure原型、prd、文档实例
  12. 单线程reactor
  13. struts2.0+spring intercepter 不能注入属性
  14. 关于ASP.NET给产品分类,分页,详情页生成静态页面
  15. 移动端登录后,携带token请求其他页面接口提示token验证失败
  16. php网站登录界面验证码打不开,php网站无法显示验证码
  17. mac 字体微软雅黑字体_在Microsoft Word 2007中搜索和替换特定格式(字体,样式等)...
  18. 湖南省中职计算机应用教资笔试+面试心得
  19. 解决开启VMware虚拟机后宿主机出现插U盘没反应的问题
  20. VC6link卡死解决办法

热门文章

  1. [Java]一则自定义的XStream转换器,主要用于POJO XML反序列化为Map/List
  2. sql 语句中where条件和jion on条件的区别
  3. python训练手势分类器_从Scikit Learn中保存的训练分类器进行预测
  4. 人脸识别 face_recognition
  5. 从多态性谈动态联编的必要性(c++)
  6. 实现一个文本文件的解析类(vector,字符串解析的应用)
  7. win32汇编 多线程编程与事件
  8. OpenSSL密码库算法笔记——第3.2章 模乘与模平方
  9. SAS Planet软件使用教程及下载Googlemap地图
  10. 如何编译Android的kernel,如何下载并编译Android 4.0内核源码Goldfish(图文)