【问题标题】:C++ web framework like spring for JavaC++ Web 框架,如 Java 的 spring
【发布时间】:2011-05-30 05:26:21
【问题描述】:

C++ 中是否有任何类似于 Spring for Java 的 Web 框架,我目前正在开发 Web 域中的应用程序。我们现有的应用程序都是用 c++ 开发的,我们正在寻找一些学习曲线小并提供令人兴奋的功能的框架。有没有人遇到过这样的框架。请告诉我。

【问题讨论】:

  • 看看这个类似的线程,stackoverflow.com/questions/746309/…
  • Spring 不是 Web 框架,Spring MVC 是。因此,DI 是 Spring IoC,而不是 Spring MVC。 IMO,您应该说 Spring MVC,因为您对 Web 框架感兴趣。或者完全要求 IoC 容器。
  • 我认为 PHP 最初是一个 C++ Web 框架。

标签: java c++ spring frameworks


【解决方案1】:

如果您正在寻找它的 DI; C++ 中的依赖注入并没有真正做很多,因为虽然你可以将一个指针注入到一个类中,但很难说谁会释放它。已经有一个 SO discussion here

【讨论】:

  • SO 不主持讨论 :)
  • @LimitedAtonement SO 可能希望如此,但他们肯定会主持讨论
【解决方案2】:

我认为开源项目“Drogon”是您想要的。 Drogon可以在github找到,这里是Drogon的描述:

Drogon 是一个基于 C++14/14 的 HTTP 应用程序框架。 Drogon 可用于使用 C++ 轻松构建各种类型的 Web 应用程序服务器程序。 Drogon 的主要应用平台是Linux,它也支持Mac OS/UNIX。其主要特点如下:

  • 使用基于epoll(MacOS/FreeBSD下的kqueue)的非阻塞I/O网络库,提供高并发、高性能的网络IO;
  • 提供完全异步的编程模式;
  • 支持Http1.0/1.1(服务器端和客户端);
  • 基于模板,实现简单的反射机制,将主程序框架、控制器和视图完全解耦。
  • 支持 cookie 和内置会话;
  • 支持后端渲染,控制器生成数据到视图生成Html页面,视图由“类JSP”CSP文件描述,C++代码通过CSP标签嵌入到Html页面中,drogon命令行工具自动生成C++代码文件进行编译;
  • 支持视图页面动态加载(运行时动态编译加载);
  • 提供从路径到控制器处理程序的便捷灵活的路由解决方案;
  • 支持过滤器链,方便在控制器之前执行统一逻辑(如登录验证、Http Method约束验证等);
  • 支持https(基于OpenSSL);
  • 支持WebSocket(服务器端和客户端);
  • 支持JSON格式的请求和响应,对Restful API应用开发非常友好;
  • 支持文件下载和上传;
  • 支持gzip压缩传输;
  • 支持流水线;
  • 提供轻量级命令行工具drogon_ctl,简化Drogon中各种类的创建和视图代码的生成;
  • 支持基于非阻塞I/O的异步读写数据库(PostgreSQL和MySQL(MariaDB)数据库);
  • 支持基于线程池异步读写sqlite3数据库;
  • 支持 ARM 架构;
  • 提供方便的轻量级 ORM 实现,支持常规的对象到数据库的双向映射;
  • 支持加载时通过配置文件安装的插件;
  • 使用内置连接点支持 AOP。

【讨论】:

    【解决方案3】:

    我还推荐Oat++,它专为您的用例而设计:

    • 与 Java Spring 相同的项目结构
    • 跨平台
    • 支持招摇
    • 授权流程
    • 零依赖

    【讨论】:

      【解决方案4】:

      我所知道的最接近的东西 - 我没有第一手经验,我只听说过 - 是一个名为 Autumn 的框架。

      【讨论】:

        【解决方案5】:

        我刚刚在浏览类似线程时发现ffead-cpp,任何人都可以评估这个框架或者知道这是否是一个合适的选择。我认为它已经回答了我的一些问题。大家能评论一下吗?

        【讨论】:

        • 框架处于初始阶段,但我喜欢它的设计方式,所以它可以作为一个很好的起点。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-04
        • 2015-10-19
        • 2012-07-18
        • 1970-01-01
        • 2011-03-18
        相关资源
        最近更新 更多