{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

你平时主要使用什么Java开发框架?

shmilyshmily 回答0 收藏1
问题描述:SpringBoot/SpringCloud/Dubbo
收藏问题

10条回答

zengdongbao

zengdongbao

回答于2022-06-28 15:45

就拿我们项目来举例说一说吧。


我们的项目是一个纯后台服务的项目,也就是没有前端页面,只对外提供服务;项目是是基于 Spring Boot 来做的,引入 spring-boot-starter-web,直接对外暴露接口,报文使用的 JSON,有极个别的接口是从老系统迁移过来的,为了让调用方尽可能地稍作修改,所以保持了 XML 的报文;在正式的生产环境中,也是使用的内置的 Tomcat;集成了 Swagger,来做接口的文档在线自动生成。

ORM 框架选择的是 MyBatis,由于项目中大部分的查询都做到了单表查询,而且查询条件比较固定,所以直接使用注解做的 SQL 语句绑定。


因为项目不仅使用了关系型数据库,而更多的数据是加工关联后保存到了 MongoDB 中,所以项目也用到了 Spring Data MongoDB,我们的 MongoDB 是做了副本集的部署,使用 Spring Data MongoDB,只需要做简单的配置,就可以完成对多台 MongoDB 的访问,如果其中一台 MongoDB 挂了,对服务也是没有影响的,所以我们做 MongoDB 扩容的时候是可以在线做的(MongoDB 扩内存和 CPU 的时候需要停机)。

和部分系统的交互使用到了 RabbitMQ,而 Spring Boot 只要引入 spring-boot-starter-amqp,其实就可以很方便地完成和 RabbitMQ 的集成;生产者和消费者都非常方便。


因为是纯接口的服务,为了减轻数据库的压力,所以我们根据业务场景,将一些接口的结果直接缓存到 Redis 中(数据变化不频繁,并且业务场景的实时性要求不是很高)。在集成 Redis 的时候,我们前后试了两种方式:

  • Spring Boot 项目,直接使用 @Cacheable 注解就可以完成和 Redis 最简单的集成,但是后来因为设置缓存的超时时间不够灵活,我们后来改成了第二种方案;

  • 使用 RedisTemplate,可以完成对 Redis 的绝大部分操作。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

评论0 赞同0
  •  加载中...
Jensen

Jensen

回答于2022-06-28 15:45

谢邀!根据你面试的职位等级不同,面试的内容当然会不同。spring、springmvc、mybatis这三大基础框架必须学和掌握,springboot、dubbo、springcloud、Spring家族其他套件、apache相关套件进阶

评论0 赞同0
  •  加载中...
tuomao

tuomao

回答于2022-06-28 15:45

Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这里我把常见的一些框架给您整理一下。


Spring框架,这个只要想从事java开发或正在从事java开发的,没有人不知道吧?没有人不在用吧?一般应该是天天用才是。SpringIoc和SpringAOP是Spring的两大核心功能,让java程序员解放了,各种整合框架,轻松搞定,把重心放到业务实现上去。


hibernate框架,也是我最喜欢的框架之一。是开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用。

可以说java官方的jpa,就是适应hibernate的超好用,而设计的。如果没有hibernate,可以不一定有orm的出现。

MyBatis,不多说, 也是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。


随着DevOps的流行,Spring Cloud是一系列框架的有序集合,当前最为流行。这里涉及到好多框架,我就不一一列出来了,大家可以自己去了解。


总之,做为一个Java开发者,熟练掌握并应用20种以上框架应该不叫算多,Java的生态太强大,所有大家要好好学习呀。

评论0 赞同0
  •  加载中...
fasss

fasss

回答于2022-06-28 15:45

springboot、吃持久层用mybatis,计划转到springdata jpa

评论0 赞同0
  •  加载中...
kyanag

kyanag

回答于2022-06-28 15:45

我主要用的框架有这三个:Spring/STRUCTS/Hibernate。


第一:Spring

Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。


第二:STRUCTS

Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。


第三:Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。映射很简单呀,就是页面的映射呀,多做点练习就会了。


应该怎么学Java编程?

Java的学习主要包括:语法基础、面向对象思想。学习任何一门语言语法都是必须的,因为Java的接近自然语言,也是一种相对比较容易学的语言。同时面向对象编程更是其核心思想,要理解其实只要记住一句话就行了,那就是:一切皆是对象。

中级的IO流、多线程、反射及注解等。IO流程、多线程等是相对比较高级一点,例如我们可以读取一个Excel文件、将一个文件分离,做一个时钟、使用多个线程发送邮件等等很多有意思的事。另外反射及注解更是后面流行框架SSH等的基础,在使用中你便会慢慢感受到它的无穷魅力。

现在来说Java最流行的应用还是Web开发。像HTML、CSS、Javascript等都是基础的知识,另外作为开发人员对目对于结构化的数据,我们常用的还是像Oracle、Mysql和PostgreSQL之类的关系型数据库。同时针对数据库编程还是PL/SQL需要学习。使用Java访问数据库的话还有JDBC。

作为Java开发,CoreJava是核心,而作为JavaWeb开发,我认为Servlet才是核心。Servlet是服务器端的Java应用程序,但是与普通的Java应用程序不同的是,它是由web服务器来加载启动,即我们常说的Servlet,如Tomcat便是servlet容器。另外谈到J2EE开发,这里有一个重要的模型不得不提一下,很多人其实已经想到了,那便是MVC(模型-视图-控制器)模型。在传统的web开发中,往往是JavaBean充当模型、JSP做视图而Servlet作为控制器。

说到框架,其实已经提到了著名的MVC模型,SSH(Struts+Spring+Hibernate)就是一个非常好的实现。对于每一个框架的作用,我想就不用多说了,毕竟这里并不是想写一本教程。另外还有工作流开发的JBPM,搜索引擎Lucence及使系统对外提供接口的webservice应用组件等都是应该要掌握的。


Java应该怎么学?

明确的学习目的。安守本分做好一名士兵,还是有所追求想做军官?这就是目标。学习也要有目的,盲目的学习必然 会使我们手忙脚乱,效率低下;有目的的学习才能使我们这只漂泊在知识海洋上的小船看到灯塔。总之,学好软件开发并不是单一影响,而是多方的作用,只有兼容并包,相互协调才能把软件开发学好。

学习方法。学习方法很重要,好的学习方法会使我们事半功倍,而不好的学习方法会使我们事倍功半,做什么事都要注重功效。

良好的心态。兴趣是最好的老师,或许你并非抱着对软件开发极大的兴趣和热情来学习的,但兴趣是最好的老师,我们可以在学习的过程中培养兴趣,有良好的学习心态,不只是为学习而学习,而是为兴趣而学习,为就业而学习。

良好的习惯。无论在学习上还是在生活上养成一个良好的习惯都对我们有很大的益处,生活和习惯又相辅相成,相得益彰,相互影响,相互作用。

注重理论基础。软件开发最好有一定的理论基础。通其理才能更好的理解技能的精髓,才懂得融会贯通,软件开发学习也适用于这一点,不要忽视理论课的作用,理论是为了更好的实践。甲骨文培训学校的教员表示:“好的培训学校能做到让学生即能对理论课付出较大的热情,又能在实践操作上表现出色。”,只有理论和实践合理的搭配才能学好软件开发技术。


高效的Java学习方法有这些!

学java首先你要学 J2SE,它是java体系的基础,也是重中之重。很多人往往不重视基础,其实这是舍本逐末的做法。说这么多就是希望大家能重视基础,能在这条路上走的更远。

学j2se有下面几个目标:

1、你要能真正理解面向对象的优势,理解为什么不是面向过程。
2、掌握java语法基础。包括异常处理、多线程、网络编程、GUI编程等
3、如果你对swing不感兴趣,可以跳过它。

这一阶段结束后,你需要能独立写一个小游戏,比如坦克大战、俄罗斯方块、贪吃蛇等。

当你完成J2SE的学习之后,你就要开始学习java web了。

你需要掌握web基础知识:html、css、javascript、ajax、jQuery。别怕,这些技术看起来很多,其实也没要你精通它们,只是要你能在用到它们的时候,能通过快速查阅相关文档,能正确使用它们。如果这一阶段顺利的话,你可能还用不到一个月。学习servlet、jsp、jdbc。这些是javaweb的基础,如果你自学有难度,可以在网上下载一些相关视频,帮助理解,降低学习难度曲线。

当你完成上一阶段的学习后,你就可以进入J2EE的阶段了。

这一阶段,你可能会见到很多各种各样的框架,会让你眼花缭乱,头晕目眩。不过别担心,你只需要学习三个就足够了。它们是struts2、hibernate、spring。这些框架为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。首先你需要学习三个框架的基本配置和使用,直到你能熟练搭建一个ssh项目。如果学有余力,你可以深入学习这些框架的设计模式。

评论0 赞同0
  •  加载中...
xiaolinbang

xiaolinbang

回答于2022-06-28 15:45

springboot、springcloud

评论0 赞同0
  •  加载中...
kyanag

kyanag

回答于2022-06-28 15:45

问题:平时主要使用什么Java开发框架

回答:基础框架是Spring Boot,在工作过程中使用过Spring Cloud 和 Dubbo来实现微服务架构。

Spring Cloud 和 Dubbo 也是目前主流的微服务实现架构,现在公司的中台就是采用的Dubbo,但是也是遇到许多问题。接下来会慢慢重构掉,有考虑采用Spring Cloud来实现。

评论0 赞同0
  •  加载中...
xioqua

xioqua

回答于2022-06-28 15:45

java开发框架的springcould,sringboot都是新潮流了,当然,这些都要有一些定的基础才能使用的了,而且小团队的话对于这些框架很难掌握的,我比较推荐别人开发好的低代码平台开发了,跑起来就能用,不用写代码,拖拖拉拉就可以实现功能,这钟对于项目来说很快,我们公司使用的就是天翎的低代码开发平台,推荐使用

评论0 赞同0
  •  加载中...
niceforbear

niceforbear

回答于2022-06-28 15:45

我推荐一个基于spring cloud 外延的一个开源项目,主要是针对企业信息化方向的,做得比较不错,能开源,支持商用。

开源地址:JVS/jvsgitee.com/software-minister/jvsgitee.com/software-minister/jvs

里面实现了 SaaS(用户与租户的多对多关系)、统一多模式登陆、在线表单配置、在线列表页配置,在线流程配置,在线图表配置等等。

系统部分截图:

登陆页面

配置化首页

系统基础信息设置

框架基础功能

应用创建()

列表配置

流程配置

表单配置

图表配置

逻辑配置

评论0 赞同0
  •  加载中...
RyanHoo

RyanHoo

回答于2022-06-28 15:45

分享个开源项目快速开发框架,采用spring cloud alibaba +nacos +vue的 技术栈,实现了大部分

钉钉宜搭的快速开发功能,很值得借鉴下。


这是在git上开源的快速开发项目,项目采用微服务为基础的脚手架,包括流程、表单、列表、图

表、应用等多个界面化的配置引擎。

项目介绍:

  • **JVS的核心目标:**让中小型开发团队过得轻松一点,优化开发团队人力成本高、交付效率低、质量不可控、周期不确定、基础技术投入不足、高端技术支持不够等
  • JVS是面向软件开发团队可以快速实现应用的基础开发框架,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容器化构建,集合持续化构建。

项目标签


低代码、微服务、支持SaaS、私有化部署、DevOps、


开源项目地址

  • 框架前端地址:https://gitee.com/software-minister/jvs-ui
  • 框架后端地址:https://gitee.com/software-minister/jvs
  • 快速安装地址:JVS/jvs-docker-compose


体验地址:http://frame.bctools.cn/#/login


登陆可以通过微信扫码登陆,对于配置数据,请各位技术同学手下留情。


部署文档
https://gitee.com/software-minister/jvs-docker-compose/blob/master/readme.md
**物理拓扑:



技术文档地址(微信登陆可查看):

技术栈说明:







系统部分截图:

登陆页面



配置化首页



系统基础信息设置



框架基础功能





应用创建



列表配置



流程配置



表单配置



图表配置



逻辑配置



demo环境:http://frame.bctools.cn/#/login

开源地址:https://gitee.com/software-minister/jvs

如果还有其他的疑问,可以私信

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<