• 关于 依赖类型怎么用 的搜索结果

回答

1 . 静态分派: 所有依赖静态类型来定位方法执行版本的分派动作,都称为静态分派,静态分派的最典型应用就是多态性中的方法重载。静态分派发生在编译阶段,因此确定静态分配的动作实际上不是由虚拟机来执行的。动态分派     动态分派与多态性的另一个重要体现——方法覆写有着很紧密的关系。向上转型后调用子类覆写的方法便是一个很好地说明动态分派的例子。这种情况很常见,因此这里不再用示例程序进行分析。很显然,在判断执行父类中的方法还是子类中覆盖的方法时,如果用静态类型来判断,那么无论怎么进行向上转型,都只会调用父类中的方法,但实际情况是,根据对父类实例化的子类的不同,调用的是不同子类中覆写的方法,很明显,这里是要根据变量的实际类型来分派方法的执行版本的。而实际类型的确定需要在程序运行时才能确定下来,这种在运行期根据实际类型确定方法执行版本的分派过程称为动态分派。

hiekay 2019-12-02 01:42:12 0 浏览量 回答数 0

回答

前言里说过,耦合是系统结构中各模块间相互联系紧密程度的一种度量。我们希望这种联系越松散越好,但是显然一点儿联系也没有是不可能的。耦合有多种类型,不同类型的耦合代表的模块间的紧密程度也是不一样的。 这里所说的模块是指系统的组成部分,系统组成包括多个模块以及模块间的关系。在技术层面模块可能存在于一个单体应用中,也可能以分布式的系统存在,这不影响我们耦合类型的讨论。 从上图中可以看到,各种耦合类型导致的系统紧密程度不一样,越松散就越好。下面我们解释几种常见的类型。 - Content Coupling:内容耦合是最糟糕的耦合。假如有A和B两个模块,B模块直接访问了A模块内部的数据,那么A对B的依赖就太重了,耦合就太紧了。这是对封装或者叫数据隐藏最直接的破坏,这就像你不是去银行柜台取钱,而是直接进入银行的金库去拿钱。且不说法律和安全上是否允许,你能不能拿到钱,很大程度上依赖于银行金库内钱的存储的结构以及你对它的熟悉程度。微服务倡导的,一个服务应用应该独享自己的数据存储,服务间要通过远程通信来协作,正很大程度上能避免了这个问题。 Common Coupling:这种耦合比上一种好一些,也好不到哪里去。A和B两个模块都依赖一份数据,只是这个数据即不属于A也不属于B。当然,严格遵守微服务的原则也能避免这种耦合。 Stamp Coupling:比共享数据更好的方式是通过参数传递数据。银行柜台的营业员就是一个接口,你要取钱的时候,去找他,把你的需要告诉他,而不是直接闯入金库去拿钱,这就是一种参数传递。但怎么描述你的需求也很关键,我们举个栗子,你来到柜台前,告诉营业员,下周你要带女盆友去国外旅游,你把你的行程表给他看,然后,聪明的营业员从你的定期账户里解冻了2万元到活期账户里,然后又把它转换成美元交给了你。这个是一个参数传递的例子,你的行程表就是入参,但这样并不好,原因是营业员直接需要的不是这个行程表,他需要从你的输入中提炼信息才能完成任务,这就是Stamp Couping。 Data Coupling:更好的是Data Coupling,它也是通过参数传递数据,与Stamp Coupling不同的是,交流的参数结构是由接口提供者定义的。作为客户,你直接告诉营业员,从你的定期账户里解冻2万元到活期账户,然后再把活期账户里的2万元转换成美元给你,这就可以了,你在用银行规定的概念和银行的营业员交流,至于你去干什么,银行并不关心,你也无需赘述。 当我们使用微服务架构构建的是分布式系统的时候,显式的数据共享造成的耦合基本避免了,但Stamp Coupling还是很常见。 注意,我这里说的是显式的数据共享造成的耦合基本避免了,还有一些隐性的,后面会举个例子。

kun坤 2020-04-24 10:37:50 0 浏览量 回答数 0

回答

我来顶顶走过路过不要错过,快来看一看,瞧一瞧!classnotfound哪一个?fileupload确实是依赖io的缺少jar,还没进servlet就出错了,所以你捕获不到<divclass='ref'> 引用来自“前面有人”的评论缺少jar,还没进servlet就出错了,所以你捕获不到<divclass='ref'> 引用来自“阿信sxq”的评论classnotfound哪一个?fileupload确实是依赖io的回复<aclass='referer'target='_blank'>@Lucare:既然是classnotfound,那就是类加载的时候就出错了噻,还没有执行servlet呢,怎么捕获嘛,你要让他不打印出来,应该从web容器入手回复<aclass='referer'target='_blank'>@阿信sxq:为什么在servlet中无法捕获异常那重点是什么,你又没说清楚可能是你要捕获的异常类型和抛出的异常类型不一样你的问题出在类加载时,应该是在classloader的流程里,异常处理也在<spanstyle="font-size:13.3333330154419px;">classloader里,里面捕获后做了处理,所以你外面捕获没有用<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;background-color:#FFFFFF;">classnotfound,你应该容器都无法启动吧~ <atarget='_blank'>@Lucare嗯那个只是工具类而已,common-io不是启动就加载的类还是可以启动的 看一下大致结构: <preclass="brush:java;toolbar:true;auto-links:false;">protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{try{//文件上传相关代码}catch(Exceptione){logger.error("fileuploaderrors");e.printStackTrace();}}

爱吃鱼的程序员 2020-06-09 14:58:18 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

回答

把implementsRoleDao从RoleDaoImpl删掉,然后试试:@AutowiredprivateRoleDaoImplrdi;你也可以设个断点,看看 rdi的类型用接口的情况下应该是:$ProxyN不用接口的情况应该是:<spanstyle="color:#444444;font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;">RoleDaoImpl$$EnhancerBySpringCGLIB$$??????不用接口的情况,RoleBaoImpl是“null”,求解释!!!接口实现类的默认组件名字就是接口名,@Autowired没有指定名字,默认使用引用类的类名,这样就不存在一个RoleDaoImpl为名字的组件类这不是硬性规定,只是默认缺省规定而已,想怎么改都行回复<aclass='referer'target='_blank'>@koik:大小写?首字母小写@Resource(name="RoleDao")privateRoleDaoImplrdi;这样给他制定了组件,为何还是报一样的错啊。是不是因为没有加cglib?都可以,只是你用错了。你的实现类是否添加了spring依赖注入?

爱吃鱼的程序员 2020-06-14 19:14:00 0 浏览量 回答数 0

问题

【精品问答】130+大数据面试汇总

问问小秘 2019-12-01 21:52:42 1644 浏览量 回答数 2

问题

【精品问答】大数据计算技术1000问

问问小秘 2019-12-01 21:57:13 3431 浏览量 回答数 1

回答

回顾2009年到如今,区块链技术的火热程度是逐年增加。各大行业巨头也在疯狂布局,势必要上演一场"群雄逐鹿"的商业大战。那这场好戏什么时候上演?有人说就在最近这两三年,还有人甚至说就在今年,2018年区块链将会出现井喷。当然,我们现在还无法做出准确的判断,但是我们可以先做好充足的准备。那么,问题又来了,区块链技术到底要怎么去弄?要用到哪些开发语言?在现在看来,这也许是很多从事区块链程序员的心声。下面整理了四种区块链技术比较主要的开发言语,希望对大家有所帮助。 JAVA开发语言(未来币) 定义:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 .Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。 C++开发语言(比特币、公正通、瑞波ripple) 定义:C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 GO开发语言(以太坊、IBM) 定义:Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。 Solidity开发语言(以太坊) 定义:Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同。 特别说明:以太坊具有四种专用语言:Serpent(Python启发),Solidity(javaScript启发),Mutan(GO启发)和LLL(Lisp启发),都是为面向合约编程而从底层开始设计的语言。Solidity是以太坊的首选语言,正处于紧张开发中,它内置了Serpent的所有特性,但是语法类似于JavaScript,JavaScript是web开发的常用语言。

问问小秘 2019-12-02 03:07:11 0 浏览量 回答数 0

回答

先吐槽下楼主的表达能力。。 给你两点SpringCache的tips: 1. 缓存注解只对public方法有效,其他类型均无效 2. 在Spring代理模式下对象内部自己调用@Cacheable方法不会使用Cache 解决办法嘛,从设计上分离对象的功能就OK了 ######回复 @阿斯兰 : cache我用的少,我总觉的理解的还有不到位的,但我那种方法是“懒人”方法,保证OK######回复 @景愿 : 喔喔,我还以为是专门针对我这种问题的;那我就分离吧! 谢谢 景愿 同学啦!######回复 @阿斯兰 : mode是表示使用代理方式创建bean还是直接修改字节码的方式来完成创建相应功能的bean,有两个选项:proxy/aspectj######回复 @阿斯兰 : 具体配置什么意思就要看官方文档了,一般我都用默认的。我简单的看了下,这两个配置对你想要的功能没有任何帮助,是指代理模式的区别,用 class-based proxies还是standard JDK interface-based proxies的区别######嘿嘿,有点急没怎么酝酿 我已经知道代理模式下内部调用会无效(查资料发现啦),只是发现 mode="aspectj" proxy-target-class="true" 设置;查资料说该方式下可以解决 但是配置测试了下依然没解决 请问这句话在什么情况下添加呢?######aspectj######回复 @阿斯兰 : 如果不指定aspectj的话,spring会使用自己的aop实现。此时@Cacheable不支持内部方法调用######回复 @阿斯兰 : 使用aspectj替换spring默认的aop实现即可######具体怎么做?######同样遇到这个问题,怎么解决的?######我是把需要用this调用的方法分离出去了,写在另一个类 这边再调用就好了###### 也遇到同样的问题, 查到最多的就是说把mode改为aspectj就OK,但我实验也不行。  不知道那些这样回答的,是不是人云亦云,自己没有做过测试 ###### aspect会将增强代码切入到字节码里面,所以可以解决这个问题。 mode改为aspectj后依赖spring-aspects的jar包。 但是我也没成功,呵呵。另入后bean都没代理了。没任何反应。郁闷 ######可以贴一下你的ehcache.xml 和 你的缓存代码注解吗?

kun坤 2020-06-04 10:58:40 0 浏览量 回答数 0

问题

Hystrix 是什么?【Java问答学堂】60期

剑曼红尘 2020-07-20 12:49:25 2 浏览量 回答数 1

问题

从&quot;我的大盘&quot;到&quot;交互大盘&quot;怎么是实现?

猫饭先生 2019-12-01 21:24:33 1197 浏览量 回答数 0

回答

作者:匿名用户链接:https://www.zhihu.com/question/30548640/answer/48787538来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 题主问的是调用命令,那当然是 POSIX 系 Shell 不罗嗦。如果你要个调用命令还算可以并且写起来舒服点的语言,建议找 Ruby 去。另外偏题去说 Shell 不是系统级编程语言的我也是醉了,我还真没看到过没有 Shell 能干活的 Unix/Linux 家伙的,就连你个 sysVinit 也得靠 shell 啊。并且你还触碰到了 Unix 狂魔的 G 点——Shell 用户万能的胶水能力被丢到哪里去了?随便起一个 Python Shell 抓住 stdin 灌或者 /tmp 丢个文件喂,你能干的我全都能干(这是认真的,参见 makeself 等自解压 shell 脚本形式)。讲 Google Style Guide 的算是靠了点谱(虽然还是丢下了调用命令这回事),问题是 Google 还不许用 C++ STL 呢你怎么不说?Bash 这玩意,认真写的人文件头都 source 一组小库的。嗯上面三段讲的是调用命令这个需求、最小依赖这个优点和语言本身不常被严肃使用(放着功能禁止用)这回事。接下来的内容严重不友善,涉及大量打岔,请题主手动忽略。大概大家都看得出我和生意人在微博上有些观点上的矛盾,我也承认匿名这样黑不大好。但是这和用 Shell 开命令搞管道胶水一样爽啊,我怎么会放弃?稍有常识的人都能看出,LibreWindows 冒泡排序的 shell 脚本完全不是用和 py 同一种风格写出来的。我在这里做了较为忠实的翻译:#!/bin/bashorig=(12 5 13 8 9 65) paramaters[] -> list[] bubble(){ list=("$@") local size=$((${#list[@]}-1)) i sorted=0 t until ((sorted)); do sorted=1 for ((i=0;i<size;i++)); do if ((list[i] > list[i+1])); then sorted=0; t=${list[i]} list[i]=${list[i+1]} list[i+1]=$t fi done done} bubble "${orig[@]}"echo ${list[@]}: << _NOTESReal unix-shelly way:sorted=$(for i in ${orig[@]}; do echo $i; done | sort -g)sorted=$($sorted)echo ${sorted[@]}_NOTESBash 的完整版本可以使用 declare -n 创建引用类型的变量,但是 Cygwin 上的 bash 没编译进去我也就先不用吧。提请阁下注意一点,数组本非古老的 Shell 所支持的,She-bang 不应调用 /bin/sh 而应使用 /bin/bash 执行。Bash 带着镣铐做这种拓展还要拿来说就算了,还强行丑化代码不开高亮接着便是叫人“感受一下”,大概也是先生您在微博上常用的套路了。另外我承认论现代编程 Shell 不如 Python,也承认 WoSign/CNNIC 验证就是比资本主义快。啊我忘了一点,这个问题本来就是讨论调用命令的,你跟我扯一般计算干啥?不要问我是谁,我只是个买辣条的。

xuning715 2019-12-02 01:10:00 0 浏览量 回答数 0

回答

一.背景 微服务架构下,我们的系统根据业务被拆分成了多个职责单一的微服务。 每个服务都有自己的一套API提供给别的服务调用,那么如何保证安全性呢? 不是说你想调用就可以调用,一定要有认证机制,是我们内部服务发出的请求,才可以调用我们的接口。 需要注意的是我们这边讲的是微服务之间调用的安全认证,不是统一的在API官网认证,需求不一样,API网关处的统一认证是和业务挂钩的,我们这边是为了防止接口被别人随便调用。 二.方案 OAUTH2 Spring Cloud可以使用OAUTH2来实现多个微服务的统一认证授权 通过向OAUTH2服务进行集中认证和授权,获得access_token 而这个token是受其他微服务信任的,在后续的访问中都把access_token带过去,从而实现了微服务的统一认证授权。 JWT JWT是一种安全标准。基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个Token,用户可以使用这个token访问服务器上受保护的资源。 感觉这2种好像没多大区别呀,其实是有区别的:OAuth2是一种授权框架 ,JWT是一种认证协议 无论使用哪种方式切记用HTTPS来保证数据的安全性。 三.用哪种 我个人建议用JWT,轻量级,简单,适合分布式无状态的应用 用OAUTH2的话就麻烦点,各种角色,认证类型,客户端等等一大堆概念 四.怎么用 首先呢创建一个通用的认证服务,提供认证操作,认证成功后返回一个token @RestController@RequestMapping(value="/oauth")public class AuthController { @Autowired private AuthService authService; @PostMapping("/token") public ResponseData auth(@RequestBody AuthQuery query) throws Exception { if (StringUtils.isBlank(query.getAccessKey()) || StringUtils.isBlank(query.getSecretKey())) { return ResponseData.failByParam("accessKey and secretKey not null"); } User user = authService.auth(query); if (user == null) { return ResponseData.failByParam("认证失败"); } JWTUtils jwt = JWTUtils.getInstance(); return ResponseData.ok(jwt.getToken(user.getId().toString())); } @GetMapping("/token") public ResponseData oauth(AuthQuery query) throws Exception { if (StringUtils.isBlank(query.getAccessKey()) || StringUtils.isBlank(query.getSecretKey())) { return ResponseData.failByParam("accessKey and secretKey not null"); } User user = authService.auth(query); if (user == null) { return ResponseData.failByParam("认证失败"); } JWTUtils jwt = JWTUtils.getInstance(); return ResponseData.ok(jwt.getToken(user.getId().toString())); } } JWT可以加入依赖,然后写个工具类即可,建议写在全局的包中,所有的服务都要用,具体代码请参考:JWTUtils GITHUB地址:https://github.com/jwtk/jjwt JWT提供了很多加密的算法,我这边用的是RSA,目前是用的一套公钥以及私钥,这种做法目前来说是不好的,因为万一秘钥泄露了,那就谈不上安全了,所以后面会采用配置中心的方式来动态管理秘钥。 类里主要逻辑是生成token,然后提供一个检查token是否合法的方法,以及是否过期等等判断。 <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version> 统一认证的服务有了,我们只需要将认证服务注册到注册中心即可给别的服务消费。 那么我们如何使用刚刚的认证服务来做认证呢,最简单的办法就是用Filter来处理 比如说我现在有一个服务fangjia-fsh-house-service,之前是随便谁都能调用我提供的接口,现在我想加入验证,只有验证通过的才可以让它调用我的接口 那就在fangjia-fsh-house-service中加一个过滤器来判断是否有权限调用接口,我们从请求头中获取认证的token信息,不需要依赖Cookie 这个过滤器我也建议写在全局的项目中,因为也是所有服务都要用,代码请参考:HttpBasicAuthorizeFilter 主要逻辑就是获取token然后通过JWTUtils来验证是否合法,不合法给提示,合法则放过 这边需要注意的地方是解密的秘钥必须跟加密时是相同的,不然解密必然失败,就是bug了 //验证TOKENif (!StringUtils.hasText(auth)) { PrintWriter print = httpResponse.getWriter(); print.write(JsonUtils.toJson(ResponseData.fail("非法请求【缺少Authorization信息】", ResponseCode.NO_AUTH_CODE.getCode()))); return; }JWTUtils.JWTResult jwt = jwtUtils.checkToken(auth);if (!jwt.isStatus()) { PrintWriter print = httpResponse.getWriter(); print.write(JsonUtils.toJson(ResponseData.fail(jwt.getMsg(), jwt.getCode()))); return; }chain.doFilter(httpRequest, response); 到这步为止,只要调用方在认证通过之后,通过认证服务返回的token,然后塞到请求头Authorization中,就可以调用其他需要认证的服务了。 这样看起来貌似很完美,但是用起来不方便呀,每次调用前都需要去认证,然后塞请求头,如何做到通用呢,不需要具体的开发人员去关心,对使用者透明,下篇文章,我们继续探讨如何实现方便的调用。 具体代码可以参考我的github: https://github.com/yinjihuan/spring-cloud

小六码奴 2019-12-02 02:03:21 0 浏览量 回答数 0

问题

SaaS模式云数据仓库MaxCompute 百问百答合集(持续更新20200724)

亢海鹏 2020-05-29 15:10:00 9080 浏览量 回答数 2

问题

【精品问答】Java经典问答之SpringBoot 100问

问问小秘 2019-12-01 22:00:40 1176 浏览量 回答数 0

问题

【精品问答】Java微服务架构之Spring Boot核心知识 100问(附源码)

游客pklijor6gytpx 2019-12-01 22:04:21 850 浏览量 回答数 0

问题

【精品问答】Java必备核心知识1000+(附源码)

问问小秘 2019-12-01 22:00:28 870 浏览量 回答数 1

回答

消息队列有什么优缺点 优点上面已经说了,就是在特殊场景下有其对应的好处,解耦、异步、削峰。 缺点有以下几个: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。本来你就是 A 系统调用 BCD 三个系统的接口就好了,ABCD 四个系统还好好的,没啥问题,你偏加个 MQ 进来,万一 MQ 挂了咋整?MQ 一挂,整套系统崩溃,你不就完了?如何保证消息队列的高可用,可以点击这里查看。 系统复杂度提高 硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?头大头大,问题一大堆,痛苦不已。 一致性问题 A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是,要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,咋整?你这数据就不一致了。 所以消息队列实际是一种非常复杂的架构,你引入它有很多好处,但是也得针对它带来的坏处做各种额外的技术方案和架构来规避掉,做好之后,你会发现,妈呀,系统复杂度提升了一个数量级,也许是复杂了 10 倍。但是关键时刻,用,还是得用的。 往期回顾: 【Java问答学堂】1期 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 【Java问答学堂】2期 如何保证消息队列的高可用? 【Java问答学堂】3期 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 【Java问答学堂】4期 如何保证消息的可靠性传输?(如何处理消息丢失的问题?) 【Java问答学堂】5期 如何保证消息的顺序性? 【Java问答学堂】6期 如何解决消息队列的延时以及过期失效问题? 【Java问答学堂】7期 如果让你写一个消息队列,该如何进行架构设计? 【Java问答学堂】8期 es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)? 【Java问答学堂】9期 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊? 【Java问答学堂】10期 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 【Java问答学堂】11期 es 生产集群的部署架构是什么?每个索引的数据量大概有多少? 【Java问答学堂】12期 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 【Java问答学堂】13期 redis 和 memcached 有什么区别? 【Java问答学堂】14期 redis 都有哪些数据类型?分别在哪些场景下使用比较合适? 【Java问答学堂】15期redis 的过期策略都有哪些?内存淘汰机制都有哪些? 【Java问答学堂】16期如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍 为什么使用消息队列?【Java问答学堂】17期

剑曼红尘 2020-05-14 11:26:41 0 浏览量 回答数 0

问题

消息队列有什么优点和缺点?【Java问答学堂】18期

剑曼红尘 2020-05-14 11:26:31 0 浏览量 回答数 1

问题

Apache Flink常见问题汇总【精品问答】

黄一刀 2020-05-19 17:51:47 8154 浏览量 回答数 2

问题

19年BAT常问面试题汇总:JVM+微服务+多线程+锁+高并发性能

游客pklijor6gytpx 2020-01-09 10:31:29 1271 浏览量 回答数 3

问题

mysql利用hash分区 主键是字符串怎么怎么办??报错

爱吃鱼的程序员 2020-06-08 20:18:05 0 浏览量 回答数 1

问题

程序员报错行为大赏-配置报错

问问小秘 2020-06-11 13:18:25 6 浏览量 回答数 1

问题

MaxCompute百问集锦(持续更新20171011)

隐林 2019-12-01 20:19:23 38430 浏览量 回答数 18

回答

代码看着很蛋疼,编辑一下,使用工具栏的 # 插入代码,才能有语法高亮 ######确实很蛋疼,整理了一下。这样好看多了。。。######不知道我有没有理解楼主的意思 引用“取个数据存个数据都得复制张贴字段好辛苦” 意思是getXXX setXXX 这样比较轻松吗, 那写javabean不辛苦吗,有人说可以自动生成 get set,还有人说可以自动生成Bean。 那同样JFinal的Model你也可以改造一下实现同样的功能。 需要复制张贴字段: 1.DB设计的不是很合理,名字长,并且生涩难记,才会出现这种情况 2.开发不用心,不熟悉表结构######回复 @LICHUAN :我们公司很多表都是在30个字段以上,然后其中还有某些表预留字段就有几十个,但是常用的就那么几个。######呵呵,在开发初期在db设计的表结构,可能你记忆真的好,一下子就记住了字段名。还有,现在一个人从设计表结构到所有都做完成的一个项目真心很小,只能代表jfinal适合一个人玩小项目,数据库什么的不复杂。######之前用Hibernate就非常讨厌写Bean和给Bean加注解######软件里面的东西只要数量级变大都会变得很麻烦,不可能每个表都是45个字段,并且每个字段都有用吧,当出现几十个字段的时候是不是应该从模型的角度也斟酌一下?###### 虽然公司项目基本都是jfinal,但是有个遗留的ssh项目,现在每次加个字段都被hibernater搞的我想死。。。各种忘记加,忘记配置。 ######回复 @LICHUAN : javaBean是依赖数据库设计的。注解比xml优秀,编写代码无需来回关注xml。但是jfinal自动创建javabean/orm的方式,比注解优秀。jfinal自动创建,创建的不仅仅是orm,还有setter/getter。维护更改数据库字段时候,双击的时间远比你找注解改注解的时间要快。当然,你也可以试试实现orm和自动生成getter/setter。哈哈哈哈哈######回复 @LICHUAN : 当你能不用写注解与setter getter以后,你会发现注解也很不爽,试用一下 jfinal activerecord两三天时间,将彻底改变你现在的想法######。。。相对来说,你还没玩过hibernate的hbm。xml时代呵,个人觉得注解形式javabean映射是最简单高效的orm框架设计了,没有之一。######回复 @Jieven : 抱歉,我说的是4-5个字段,没有那么夸张到40-50个字段的表结构。 话说我真不敢苟同你的意见,一个javabean配置一个表结构,使用getset方法访问的好处是在写代码的时候直接调用getset函数就能够方便的操作表字段,而不需要记住表结构字段名称。 而这个好处在刚开始写项目的速度优势是显而易见的。还有一个好处是可以随时调整表结构,而不需要写了一般发现某些字段得调整,而当这个表结构使用jfina的set(“key","value")分散在各处的时候,你会发现,悲剧了,每个都得改。 ###### 回楼上的楼上,我现在使用jfinal的Model就是这样改造来用的,将就着用吧: public String getName() { return get("name"); } public void setName(String name) { set("name", name); }###### 不知道他们大公司实际是怎么做的 你可以咨询下@绝望的八皮 或者 @JFinal  个人是参照的 jfinal blog 里面的,用起来也很爽! ###### 引用来自“孤独的3”的答案 不知道他们大公司实际是怎么做的 你可以咨询下@绝望的八皮 或者 @JFinal  个人是参照的 jfinal blog 里面的,用起来也很爽! 其他用起来还是蛮爽的,就是对这个Model组件挺纠结的。赶脚这种去对象化的DB设计对于多人合作或者数据表复杂点就难以使用了。 ######大公司,不一定牛B,技术也不一定先进,我们公司500人不知道算什么公司,还在用HashVO 来获取数据,如果这个到时候改表结构,不知道有多少人要跳楼,但是实际上几乎没改过表结构######     用 jfinal model 一到两天就知道好处了,对于web项目来说数据是非常关键的,所以对数据库表结构要非常地清楚,至于字段记忆的问题,可以通过 desc tableName得到表结构,然后放在model最前面的注释里面,随时可以查看。     用过 hibernate 两三年,jfinal 比传统 Java ORM 好用多了,不信就试试,保证你会将传统java ORM彻底扔进垃圾桶, @绝望的八皮 就是其中之一 ######支持Record ORM,支持JFinal######别的不想多说,时间会证明一切,看看是屌丝多,还是高帅富多######springrain @WhereSQL 动态查询条件的注解……###### 各位只是说jfinal record orm好啊,真的好啊,非常好啊。但是几乎都没有说到怎么个好法,怎么达到快速敏捷开发的目的。是jfinal的脑残粉么? 我也用过不少ORM框架,大概也不过xml配置,注解式,还有jfinal的sql映射方式。我就想问两种方式, 1,只写一个带注解的bean,使用getset方法访问数据。 2,还是需要写个sql或建立好表再写个空bean把相关字段放到各处使用。 两种方式哪个更方便,更便于维护? ######jfinal没有完全使用注解实现orm,没耐心看源码怪谁?我一个学jfianl2天的人,不敢说我说的都准确。但是我告诉你一点,jfinal可以自动实现orm/setter/getter/基本的jdbc。维护数据表不需要重复关注javabean的注解,不需要重复关注xml。我们有更多时间写业务。另外jfinal的mvc传参比springmvc不会出现忘记数据类型/数据字段名称等的400错误。

kun坤 2020-06-10 09:36:07 0 浏览量 回答数 0

问题

写出优雅的java代码,不能不知道的8点建议

游客pklijor6gytpx 2020-05-27 15:38:20 691 浏览量 回答数 2

问题

OSS FTP工具发布啦

oss-dev 2019-12-01 22:09:23 54337 浏览量 回答数 41

问题

【精品问答】Java技术1000问(1)

问问小秘 2019-12-01 21:57:43 34170 浏览量 回答数 10

问题

dubbo 的 spi 思想是什么?【Java问答学堂】50期

剑曼红尘 2020-07-07 09:48:29 25 浏览量 回答数 1

问题

盘点年度 Python 类库 Top 10

珍宝珠 2020-01-09 13:39:35 77 浏览量 回答数 1

问题

支付宝的性能测试

云效平台 2019-12-01 21:47:13 5472 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播