Java 开发经验分享

上周Java入门内容分享,分享内容如下图,交流的话题由浅入深地进行,下面是分享的下篇,包括框架,架构,职业发展3个内容。

开源框架

开源框架的出现,大大提升了我们开发的效率,十多年前做开发,没有这么多开源的框架。那个时候人们都会去自己封装,基于servlet,基于web.xml,基于J2EE,自己去写一些东西啊,后来呢,出现了EJB,再往后出现了SSH,包括spring,struts2,hibernate,再往后的话,mybatis,springmvc,springboot等spring的这种全家桶也发展了起来,所以说框架在开发过程中,极大地提升了我们的开发效率。

Java后端开发中很重要的一个框架就是spring,它里面的那种分支技术非常多,我们到底用什么,去选择什么技术选型很重要,不同的公司呢,他选择的框架也不一样啊,自己学习的时候呢,去网上了解一下,基本的常用的这种开源框架进行学习就好了。

spring几种依赖注入分别适用什么情况

spring最大的特点就是依赖注入和切面编程。

依赖注入是什么意思呢,就相当于原来我们去创建一个对象,都是自己写代码,自己去new一个对象,用了spring以后,它的依赖注入就可以帮助我们创建对象,由spring来管理对象的创建,这就是他的第一个特性。

另外一个特性就是面向切面的编程(AOP),我们经常使用的场景就是在一个类里面,在一个方法的调用前和调用后,我们想做一些特殊的操作,那么就可以用AOP的方式把它切进去,比如说我在调用某个方法前,想打印一行日志,调用方法之后打印另外一行日志,就可以用这个AOP的技术。

spring的依赖注入一般有三种方式,第一个是接口注入,第二个是setter方法注入,第三个是构造器的注入,我们在开发中一般大家都习惯了,在xml里面做配置啊,把我们的一个been配置好,另外一种方法就是用注解来进行注入。

注解,我们一般用Autowired,它是可以自动装配的;另外一个是Resource,它可以标注在字段和属性的三大方法上,按照我们指定的名称去装配。

mybatis

MyBatis 它其实是基于一个ibatis发展而来的,这个技术比较新,也就是2013年左右出来的,到现在也就五六年的时间。MyBatis是支持定制化 SQL以及高级映射的持久层框架。避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,可以用配置的方式将普通的Java对象映射成数据库中的记录。

MyBatis 是一个ORM(对象关系映射)的框架,面向对象的开发中,我们去查询数据库,它分装了一些JDBC的操作,方便我们去操作数据库,和hibernate类似,它们都是ORM框架。

springboot

springboot是spring大家族里面的一个优秀的框架,它也是最近比较流行的一个框架。springboot它其实是一些库的集合,它就是为了简化我们的spring配置而生的。

springboot的优点就是可以独立地创建spring的程序,它也不需要我们用容器来把它进行部署,因为它里面内嵌了一些tomcat容器,它也可以简化我们的应用,可以自动的帮我们做一些配置,也不需要那些xml的那些配置。所以呢,我们在开发中使用springboot,可以更高地提高我们的开发效率。

下面给大家看下spring管网,里面有很多技术分支:

https://spring.io/projects/spring-boot

可以从这里进行spring框架大家族的学习。

前后端分离是什么

前后端分离它是现在互联网上比较流行的一种架构,就是说,我们前端的页面和我们后台的一些Java代码分开,前后端分开开发,分开部署。原来的jsp是前后端是没有分离的。

我们现在说的前后端分离,一般会采用H5+后端的开发,或者是安卓+我们后端的一个开发,或者苹果+我们后端的开发,后端开发一般就是Java开发。

那前端和后端,它主要的区分的界面,就是我们的用户界面,给用户展现的页面儿就是前端,后面用户看不着的,那就是后端。前端使用的技术,一般就是html,css,javascript。常用的框架就是jquery,bootstrap,前端和后端的交互,主要用的就是ajax。

高并发与分布式

互联网上两个牛逼的技术就是高并发和分布式。其实呢,当你一个网站上想实现这种高可用和高并发的时候呢,其实你是离不了这种分布式的。秒杀就是一个很好的高并发的场景。

那么首先我们来说一下什么是分布式。原来的一个系统啊,它就是一台机器,这台机器即用作前端部署,又做后端部署,也做数据库的部署。开始我们的访问量小,那么我们一台机器够了。

随着业务的发展,用户访问量的增加,那一台机器是扛不住这种用户访问的压力,那么我们把数据库就会拆出来单独部署,后端的这种Java代码,也就是我们的应用也会独立部署,把用户前端的界面也进行单独部署,那么这样的话,你从一台机器就变成了三台机器,这就是一种分布式。

再往后呢,随着我们业务的发展,我们网站访问的人越来越多,当你的流量越来越大的时候,那么你三台机器也不够了,因为机器的性能有限扛不住了,所以我们需要继续进行分布,扩大机器,从一台变三台,三台变六台......

那么怎么变呢,就出来了集群的模式,比如说我们tomcat这种后端的应用,我原来是一台机器,可以把应用部署到多台机器上,做成应用的集群;那我的数据库,原来是一台机器,那么现在通过数据库的拆分,可以分为主库和从库,主库去做数据库的写入操作,从库去做数据库的读操作,从而来缓解这种前端的访问压力。

随着集群技术的引入,反向代理就出来了,我们常用的反向代理就是Nginx或者LVS。Nginx就是说前面的一个用户的请求,对应到我们后端的tomcat应用。原来一台的话它直接对应上去,现在我有多台机器的话,他需要经过一个代理,确定是去我们的哪台机器上请求和访问,做服务器的负载均衡。

再往后发展分布式就引出了一个微服务,微服务就是把应用做成一个个独立的这种业务模块,去独立部署,分别部署到不同的集群上。这样的话通过分布式的微服务的集群,现在我们的网站能经得住这种大量用户的这种访问。这就是解决了这种高并发的问题,就是同一秒的时刻,大批量的用户进来的时候,我们的网站依然能够对外提供服务。

如何在现有基础上加薪

我们来聊一聊如何来升职加薪,其实这个话题有点儿大,那每个人都想升职加薪,但是在公司里面儿,你一个人的薪水和你体现出的价值是匹配的。那如果想加薪的,势必要体现出你的价值高于你现在的薪水水平,这是我们升职加薪的必要条件。

如果你想加薪,那么你首先应该做的,就是在公司里面要体现出我自己的个人价值,等个人价值得到公司认可的时候呢,就会给你带来升职和加薪。

如果你觉得你在公司的价值其实是远远超过你的薪水,但是老板呢,也没有给你提加薪的时候,你可以找个合适的机会了,去跟他谈一谈啊。有的人说不好意思和领导提加薪,怕被拒绝,很没面子,这里你需要学会争取,做好准备就可以提一下。

在谈之前首先要体现出来你的工作价值,找到合适的机会去谈。当你把一件事情做好了,老板认可的时候呢,这个就是提出你加薪的一个好的时机,那如果你跟他提了,他又没去给你兑现的时候,那么你怎么办呢,就需要找老板进行一次交流。

通过和老板的交流,你可以得到一些认识,比如说,你是自己觉得自己的价值高了,还是说老板也是认可你的价值啊,如果老板认可你的价值,他不给你提薪水的话,那么你其实你就可以去跳槽了。

因为跳槽是程序员加薪的一个很好的一种方法啊,因为一个公司里面,你想加一些加薪水的话,一般它的制度有限,相对困难,那么当你跳槽出去的话,一般都可以有一个30%左右薪水的提升。关于跳槽这一块儿是强烈不建议大家裸辞的。

当你准备跳槽的时候需要要对自己的技术全面的做一下复盘,了解自己,做到知己知彼,跳槽之前可以去搜一下招聘网站,去看看别人对你是一个什么样的要求,从而为你的跳槽做一些准备。

到此,开发经验分享两个部分就聊完了。

Java开发指导(上)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 Java,Web程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值