BOS项目技术点总结

BOS项目技术点总结
1.什么是git,和svn的区别
git是一个分布式的版本控制系统,一般用于代码的版本控制,类
似于svn,区别在于git可以在建立本地仓库,这样代码可以提交
到本地,这样可以断网提交,可以查本地的代码提交历史记录。
git有像github,码云这样的代码托管网站(我们项目就放在
github上),下代码很方便。
2.什么是maven, maven中的依赖范围,依赖传递是什么意思
maven是一个软件项目管理工具,一般用它的配置文件pom来加载
jar包,也可以用来编译工程发布工程
安装一个外包maven并整合到eclipse中,通过配置文件指定jar
包的本地仓库,私服,和中央仓库,镜像等。
通过maven引入jar包,也通过maven将工程发布出去给其它工程
引用。
依赖范围是用来控制打jar包的范围。
compile 编译、测试、运行
provided 编译、和测试有效
runtime:测试、运行有效。
test:只是测试有效,只在单元测试类中用。
依赖传递就近原则
坐标
3.spring的原理,它是如何整合其它框架的
AOP(面向切面编程) 对指定的业务进行统一的增强,如事务处理,日志记录,性能统计,将这些代码从业务逻辑代码中抽取出来。
IOC(控制反转)DI(依赖注入)
(1)项目引入的bean对象不用我们从bean工厂取,而是通过sring
里的配置文件得到
(2)web层调service,service调dao都是通过加注解的方式,
让spring注入进来,不用我们new出来
spring一般通过配置文件将其它框架整合进来,在配置文件中配
灰雀教学实录置bean工厂或模板和相关的属性,这样我们就不需要自己new出
来bean工厂而是由spring统一得到
4.什么是模型驱动,什么是领域驱动建模,有什么好处
模型驱动是使用javaBean对象来封装请求参数,在整个MVC流程
中可以直接使用这个对象,用起来方便(对比属性驱动,对比
servlet中Parameter)
领域驱动建模是对业务对象的的抽取,就程序来说领域模型就是
java里面的实体bean(domain),我们将这些实体bean抽取出来,
通过maven配置引入,不同的工程就都可以使用这些模型。
5.什么是jpa,springdatajpa和hibernate之间的关系
jpa是sun公司定义的一套数据持久层的标准,是一种规范
hibernate是具体的技术实现还有别的技术(Toplink等)但不流行了。类似于接口和实现类的关系非常任理事国
jpa定义的是一系列的接口和注解。Spring Data JPA 是在JPA规范的基础下提供了Repository层的实现
好处用jpa方式开发者面向JPA规范的接口不必关注底层的
JPA实现哪种好用哪个不用再去学习一套新的技术
减少学习成本。
6.用springdatajpa有什么好处,为什么
对于Oracle数据库,我们自己编写的dao 继承了jparepository
接口在具体实用时由 sprinrg容器给我们注入进一个实现类,
使用springdatajpa抽象了具体的数据库操作,项目中用的
redis,elasticsearch和ehcache都可以通过springdatajpa来操作
7.webservice是干什么的
webservice就是多项目,多平台之间进行方法调用的一种技术,
现在工作中用cxf框架通过spring配置进项目来,用起来很简单
的,只要在普通的服务上加上对应的注解就可以发布出去了。
webservice分成两种方式,一种是传统的基于sopa协议的方式,一种是rest的方式,传统的ws的方式不太常用了,我们项目中是
用的就是rest的方式
8.webservice的两种实现方式rs和ws的区别
rs和ws的最主要的是rest是用的http协议,传统ws用的是soap
协议,一般ws用的是xml格式而rs用的多是json格式,如果是
完全基于restful风格,那么发布的服务就是一个资源,具体的增
删改查方式是通过请求方式post,delete,put,get的方式来确定
的。
rs更方便,更流行一些,因为它是返回json格式访问服务的客
户端只用通过工具webClient或者httpclient就可以访问了。
9.分页查询的参数,及查询后的数据是如何返回的
请求参数页码,每页记录数
返回总记录数和当前页数据记录一般返回的当前页数据是一个
list集合, 我们要把list和总记录数封装到一个对象中返回前端页面
10.AngularJS的几个特性,什么是路由
MVC,(模仿后台框架的MVC Controller就是js代码,Model)
双向数据绑定(更新模型,视图会自动更新,更新视图,模型会自动更新)
模块化设计
官方提供的模块 ng、ngRoute
用户自定义的模块 dule(‘模块名’,[ ])
angularJs实现单页面多视图的页面跳转效果类似于url跳转
11.什么是消息队列(mq) 消息服务器的应用场景和队列的两种方式
消息队列中间件是分布式系统中的一种的组件,主要解决应用服务之间耦合,异步消息,流量削锋,等问题实现提高系统性能的一种架构
2、ActiveMQ 应用场景分析
1)用户注册,重点用户信息数据库保存,发短信、发邮件,增加业务处理复杂度,这时候用MQ,将发短信、发邮箱,通知MQ,由另外服务平台完成
2)搜索平台、缓存平台
查询数据,建立缓存、索引,不从数据库查询,从缓存或者索引库查询
当增加、修改,删除数据时,发送消息给MQ,缓存平台、索引平
台从MQ获取到这个消息,更新缓存或者索引
1)Queue队列,生产者生产了一个消息,只能由一个消费者进行
消费
2)Topic话题,生产者生产了一个消息,可以由多个消费者进行
消费
12.什么是页面静态化,如何实现,有什么好处
Freemarker
将动态数据访问,生成为一个静态html页面,提高查询效率
页面静态化,其实就是将动态生成的jsp页面,变成静态的HTML
页面,让用户直接访问。有一下几方面好处:
1,首先就是访问速度,不需要去访问数据库,或者缓存来获取哪些数据,浏览器直接加载渲染html页即可。所以可以大大的提高
访问效率;
2,从网站优化来分析,搜索引擎更喜欢静态的网页,静态网页与
动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO
排名更容易提高。
3,从安全角度讲,静态网页不宜遭到黑客攻击,如果黑客不知道
你网站的后台、网站采用程序、数据库的地址,静态网页,更不
容易受到黑客的攻击。
4,从网站稳定性来讲,如果程序、数据库出了问题,会直接影响
网站的访问,而静态网页就避免了如此情况,不会因为程序等,而
损失网站数据,影响正常打开,损失用户体验,影响网站信任度。
注意问题:
1,随着项目的扩大,静态html页面将会不断的增大,增多,所以
核心交换机要注意管理这些静态页面。例如路径的管理,及时更新的管理等等。
2,有些页面并不一定非要来静态化,但是为了避免地址暴露过多
的信息,也可以用URL伪静态,使页面看起来就像静态页面一样,原理只是一个Filter。
13.Quartz是什么,应用场景
定时任务框架
用户解冻:比如用户在登录的时候,连续输错3次密码后,系统会xtt
将该用户冻结,不再允许该用户登录系统,等到了晚上零晨时分,再为所有被冻结的用户解冻,这样,用户在第二天又可以正常登录
系统
抓取日志:比如需要在每天凌晨时候,分析一次前一天的日志信息
sheduler
job jobFactory
trigger
卷曲霉素
14.elasticserach是什么,原理, 如何使用,和lucene的关系
数据执行保护
1、Lucene就是一套全文检索编程API,基于Lucene对数据建立索
引,进行查询。
2、现代企业开发中,更常用的是solr搜索服务器和ElasticSearch
搜索服务器。
主要概念
索引文档文档类型映射
1)索引对象(数据存在哪?):存储数据的表结构,任何搜索数
据,存放在索引对象上
2)映射(数据怎么存?):数据如何存放到索引对象上,需要有
一个映射配置,数据类型、是否存储、是否分词…
3)文档(存什么数据?):一条数据记录,存在索引对象上
4)文档类型(数据有哪些类型?):一个索引对象,存放多种类
型数据,数据用文档类型进行标识
编程步骤
1)建立索引对象
2)建立映射
3)存储数据【文档】
4)指定文档类型进行搜索数据【文档】
5)查询数据【文档】
15.缓存的原理,redis和ehcache的比较
缓存可以提高查询性能,对同一批数据进行多次查询时,第一次查
询走数据库,查询数据后,将数据保存在内存中,第二次以后查询
可以直接从内存获取数据,而不需要和数据库进行交互.
最简单的缓存实现可以用一个map实现,map的键存查询语句,map
的值存对应查询到的数据。
ehcahe和redis的比较
ehcache直接在本机jvm虚拟机中缓存,速度快,效率高,本机速
度自然是最快的,但重启web容器会一起消亡掉,只能当前web
应用访问操作, 做缓存共享麻烦,集分布式应用不方便。ehcahe
可做hibernate的二级缓存。
redis是通过socket访问到缓存服务,效率比ecache低,比数据
库要快很多,处理集和分布式缓存方便,有成熟的方案。
如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如
果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建
议用redis。
ehcache也有缓存共享方案,不过是通过RMI或者Jgroup多播方
式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共
享可以,但是涉及到缓存恢复,大数据缓存,则不合适。总之
ehcache能干的活redis都能干,redis能干的,ehcache不一定。
16.权限控制的几种方式, Shiro如何实现权限控制
第一种:URL级别粗粒度权限控制(重点)
配置l的shiroFilter拦截 /*
在spring的applicationContext*.xml配置文件中配置同名的
bean,配置filterChainDefinitions拦截控制规则
xxx.html*=anon(未登录可以访问)
xxx.html*=authc(必须登录才能访问)
xxx.html*=perms[权限](需要特定权限才能访问)
xxx.html*=roles[角](需要特定角才能访问)

本文发布于:2024-09-22 21:10:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/292736.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   缓存   静态   页面   用户
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议