首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
hook
uri
httpclient
hashtable
shell
char
random
client
case
typescript
dockerfile
hashcode
post
usb
erlang
timestamp
include
dagger
jar
subset
bash
ip
netty
callback
python2
iostream
runtime
js
solr
filter
cmd
spring
hashset
flutter
integer
process
window
install
grid
search
frameworks
plugins
bytecode
buffer
php5
express
less
bitmap
web
keyword
schema
eval
golang
actionscrip
chat
io
replace
utf-8
email
main
default
import
数组
rsa
python3
java
httprequest
loops
vba
get
md5
join
jsp
dll
web3
split
php
uml
metadata
当前位置:
开发笔记
>
编程语言
> 正文
从.net到java,记录下这三个月的工作
作者:吴钧隆362 | 来源:互联网 | 2023-08-16 19:09
从事.NET开发已经4个年头,经过十余个项目的学习与沉淀,终于有了一套自己熟悉并且相对完善的技术体系,面对未知,不再惧怕。期间完成并广泛用于公司项目的作品包括:abp的二次开发框架BodeAbp基于o
从事.NET开发已经4个年头,经过十余个项目的学习与沉淀,终于有了一套自己熟悉并且相对完善的技术体系,面对未知,不再惧怕。期间完成并广泛用于公司项目的作品包括:
abp的二次开发框架BodeAbp
基于owin的sso系统
全自动数据表格react与jquery版
通用的属性系统
慢慢的发现开发变得简单,感觉所有的业务需求都好像一种机械的重复,我似乎正在走进舒适区。然而技术海洋其深远辽阔远不是我腹中那三两滴墨水可以丈量,我要走的路还很长,恰逢公司五月启动了一个java平台网站的开发,而现有的技术团队都是.net,我们面临着极大的挑战。其中技术选型、开发框架的搭建都是我需要解决的问题,踏坑无数,又在坑里浴火重生。从.net到java,不是为了转型,而是丰富自己。
万事开头难,在.net技术体系中摸爬滚打了几年之后初次接触到java,甚至连编辑器怎么使用我都是懵逼的,好在有万能的搜索引擎,经过两天疯狂的资料查询以及各种莫名其妙的内心挣扎。最终的技术选型为:
开发工具:idea
web框架:spring mvc
orm:mybatis及其增强工具mybatis-plus
日志:slf4j + log4j
缓存:redis
准备工作
准备工作主要是JAVA开发环境的搭建,怀念.net一键安装visual studio的日子,主要工作有:
JDK安装
JRE安装
Tomcat安装
idea的安装以及破解
maven安装以及国内镜像的配置
redis的安装
maven是java的包管理器,类似.net的nuget,前端的npm与yarn。
后来集成了dubbo服务框架,就还需要dubbo-admin的部署以及zookeeper的安装。
开发过程
首次使用java开发项目,过程中遇到的问题真的是多不胜数,一个xml配置异常就让我纠结两天都不能解决,最终不得不删除项目重头再来,整个过程中像这样整个项目建了删,删了再建经历5次左右终于有了一个可以使用的简易开发框架,可以给他们写业务代码了。
得益于.net工作对于web开发的认知,在经过了接近两周的阵痛期之后很快速的就上手了,遇到问题通过搜索引擎很快就能解决,很多思路是相通的,只是实现方式的差别而已,我们的开发速度也在逐渐的加快,期间也修复了不少开发框架中的BUG。
两个月过去,不断的踩坑填坑,不断的重构项目,开发框架慢慢的趋于稳定,然而我们由.net切换到java,肯定不是单纯的换个新语言体验下生活,更多的是为了java体系中那些成熟的分布式解决方案(比如dubbo、spring cloud等),然后又开始了新一轮的阵痛期,期间项目结构发生过巨大的变化,就顺便又进行了一次大的重构,但此时对于java我解决问题的能力已经要比之前好多了,集成dubbo的过程中,遇到的问题几乎都在两个小时内都解决了。
上周末,dubbo集成完毕,测试通过,开发几乎和以前一样。虽然是站在巨人的肩膀上搭建了我的第一个分布式应用,但是其完成时的喜悦依然是美好的。我也由此看到了以前搭建的.net框架的一些不足之处,算是另一种形式的反哺吧。
最终成果
整个项目结构在开发过程中不断的重构,重构过程中集成了dubbo服务框架,最终如下图所示:
cczcrv-core:包括各种抽象基类与工具类、缓存的实现等。
cczcrv-service-common:依赖cczcrv-core,包括所有服务接口、DTO、Model的定义。
cczcrv-service-xxx:依赖cczcrv-core、cczcrv-service-common,服务的实现。每个模块均可集群部署,可拥有自己的数据库,可单独做读写分离等。
cczcrv-web-website:依赖cczcrv-core、cczcrv-service-common,web层,调用远程服务,不依赖具体实现。
写在最后
我将业务代码删除之后将项目放在了Github,地址:https://github.com/liuxx001/cczcrv-java,有兴趣的可以看看。
参考项目:
http://git.oschina.net/iBase4J/iBase4J
https://github.com/judasn/IntelliJ-IDEA-Tutorial
java
react
jquery
编辑器
搜索
ide
web
spring
mvc
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
uri
在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ...
[详细]
蜡笔小新 2023-12-13 15:19:01
ip
利用RxJava实现的事件总线(Event Bus)及其使用方法介绍
本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ...
[详细]
蜡笔小新 2023-12-11 12:16:40
js
从零基础到精通的前台学习路线
随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ...
[详细]
蜡笔小新 2023-12-10 20:05:15
js
ASP.NET Core MVC入门及基础使用教程
本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ...
[详细]
蜡笔小新 2023-12-10 16:58:35
callback
wpf+mvvm代码组织结构及实现方式
本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ...
[详细]
蜡笔小新 2023-12-10 10:07:44
filter
java开发中常用框架优缺点
一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ...
[详细]
蜡笔小新 2023-10-17 16:19:02
filter
安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ...
[详细]
蜡笔小新 2023-12-14 05:55:08
js
React基础篇一 - JSX语法扩展与使用
本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ...
[详细]
蜡笔小新 2023-12-11 11:37:05
post
无法使用fetch在服务器端读取/获取发布的数据
本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ...
[详细]
蜡笔小新 2023-12-11 11:26:28
ip
深入剖析jquery源码,探寻框架底层原理
随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ...
[详细]
蜡笔小新 2023-12-10 17:42:39
filter
shiro java配置问题:加入Shiro listener后启动失败
本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ...
[详细]
蜡笔小新 2023-12-10 09:43:05
filter
ASP.global_asax不存在于命名空间ASP中的问题
本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ...
[详细]
蜡笔小新 2023-12-09 19:22:03
js
React 小白初入门
推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ...
[详细]
蜡笔小新 2023-10-17 16:10:45
js
javaSpring MVC 3.2.5无法识别的字段Jackson
我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ...
[详细]
蜡笔小新 2023-10-17 14:01:01
js
关于extjs开发实战pdf的信息
本文目录一览:1、extjs实用开发指南2、本 ...
[详细]
蜡笔小新 2023-10-17 13:23:21
吴钧隆362
这个家伙很懒,什么也没留下!
Tags | 热门标签
hook
uri
httpclient
hashtable
shell
char
random
client
case
typescript
dockerfile
hashcode
post
usb
erlang
timestamp
include
dagger
jar
subset
bash
ip
netty
callback
python2
iostream
runtime
js
solr
filter
RankList | 热门文章
1
访问网站的内部原理
2
aws lambda 测试_在Go中对AWS Lambda进行单元测试
3
UI 测试:包含清单和示例的完整指南
4
Mysql5.6主从同步配置与解决方案
5
《小重山》翻译 原文赏析诗人宋赵师侠
6
贴吧小项目3
7
md788ch/a是ipad几代
8
雍正给乾隆留千万,乾隆给嘉庆留了多少?
9
爬虫1.1-基础知识:学习使用requests库
10
python中配置opencv_Python 3.4 Windows下安装OpenCV
11
thinkphp框架(接口)
12
什么是python单例模式[python常见问题]
13
单例模式懒汉、饿汉和登记
14
io.fabric8.kubernetes.api.model.PodStatus.getConditions()方法的使用及代码示例
15
javascript setTimeout setInterval使用详解
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有