不知道为了什么

来源:互联网 发布:ubuntu wine怎么安装 编辑:程序博客网 时间:2024/05/01 08:29

vue.js 是库,不是框架,不是框架,不是框架。

vue.js 下载过来直接在html中引入就好了并不一定要npm install vue.

vue.js 有路由的 叫vue-route.js,vue.js也有数据请求 叫vue-resource.js


Vue.js可以在html里引用,使用npm引入是方便包管理。
等到应用需要的库和框架多起来后,一个个从html里引入就不方便了。
所以用到打包工具比如webpack,可以直接require引入之后将不同模块打包成单个js文件。同时这些工具提供各种自动化处理,让前端开发更爽。
最后Vue.js是数据驱动,和JQuery思路不同,你几乎不需要自己进行复杂低效的dom操作,开发简介明了。从这一点上说,可以基本抛弃JQuery了。


不会node.js npm webpack等等,仅仅用router vue vue-resource

jsp:

<script src="https://unpkg.com/vue/dist/vue.js"></script><script src="https://unpkg.com/vue-router/dist/vue-router.js"></script><div id="app">  <p>    <router-link to="/user/foo">/user/foo</router-link>    <router-link to="/user/foo/profile">/user/foo/profile</router-link>//////像a标签一样,感觉用得可能不是很多    <router-link to="/user/foo/posts">/user/foo/posts</router-link>  </p>  <router-view></router-view></div>

js:

const User = {  template: `    <div class="user">      <h2> 开始{{ $route.params.id }}</h2>      <router-view></router-view>//连接到子路由的    </div>  `}const UserHome = { template: '<div>Home</div>' }const UserProfile = { template: '<div>Profile</div>' }const UserPosts = { template: '<div>Posts</div>' }const router = new VueRouter({  routes: [    { name: '1' ,path: '/user/:id', component: User,      children: [        // UserHome will be rendered inside User's <router-view>        // when /user/:id is matched                // UserProfile will be rendered inside User's <router-view>        // when /user/:id/profile is matched        { path: 'profile', component: UserProfile },        // UserPosts will be rendered inside User's <router-view>        // when /user/:id/posts is matched        { path: 'posts', component: UserPosts }      ]    }  ]})const app = new Vue({ router }).$mount('#app')router.push({ name: '1', params: { id: 123 }})//替代</router-link>手动启动一个//通过name启动



面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
中文名
面向服务的体系结构
外文名
Service-Oriented Architecture
外语缩写
SOA
本    质
组件模型

SOA服务化

当整个系统以及发展的足够大的时候,比如一个电商系统中存在有:

  • 用户系统
  • 订单系统
  • 支付系统
  • 物流系统

等系统。 如果每次修改了其中一个系统就要重新发布上线的话那么耦合就太严重了。

基于dubbo的实现

dubbo应该算是国内使用最多的分布式服务框架,基于此来实现对新入门的同学应该很有帮助。






webService

通过上面的例子,对SOAP/Web Service/WSDL关系说明如下:

  • Web Service实现业务诉求:Web Service是真正“办事”的那个。
  • WSDL提供“能办的事的说明”:我想帮你的忙,但是我要告诉你我都能干什么,以及干这些事情需要的参数类型。

    简单来说,WSDL 是用来描述如何来使用SOAP 来调用Web 服务的。

  • SOAP提供“请求”的规范:你想让人家办事,总得告诉人家你想干什么吧,SOAP就是定义这个“请求”的格式的,按照SOAP定义的“请求”格式“书写”请求就可以保证Web Service能够正确的解读你想让它干什么以及你为它提供了什么参数。在这个请求中,你需要描述的主要问题有:向哪个Web Service发送请求,请求的参数类型、参数值、返回值类型。这些都“填写”完毕,也就完成了符合SOAP规范的SOAP消息。

看懂WSDL

它描述了:服务名,服务地址,服务能用什么协议访问,服务有哪些方法,每个方法有几部分参数,每个参数的类型。 
在一个WSDL文档中,你最经常看到的元素前缀会有wsdl、soap、xsd。当然这些前缀是与命名空间URI对应的,前缀是可以自己定义的,或许与此不同,但大都这么定义。 
WSDL在设计时,充分考虑了,各个元素模块的重用(好像一个类中定义了一些方法,可被不同方法共同调用)如:wsdl:binding、wsdl:portType、wsdl:message,你定义的这个元素可能被几个地方引用到。所以WSDL设计者把它设计的够精简、灵活。*强调内容* 

重点:webapi用的是http协议,webservice用的是soap协议,webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作,但我发现公司的长隆接口是用webService

所以还是要了解一下!!!!!

webService框架

1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。 
  JAX-WS(JWS)
2、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。这是它的优势所在。但是,这也不可避免的导致了Axis2的复杂性,使用过的开发者都知道,它所依赖的包数量和大小都是很惊人的,打包部署发布都比较麻烦,不能很好的与现有应用整合为一体。但是如果你要开发Java之外别的语言客户端,Axis2提供的丰富工具将是你不二的选择。 
  
3、XFire是一个高性能的WebService框架,在Java6之前,它的知名度甚至超过了Apache的Axis2,XFire的优点是开发方便,与现有的Web整合很好,可以融为一体,并且开发也很方便。但是对Java之外的语言,没有提供相关的代码工具。XFire后来被Apache收购了,原因是它太优秀了,收购后,随着Java6 JWS的兴起,开源的WebService引擎已经不再被看好,渐渐的都败落了。 
  
4、CXF是Apache旗下一个重磅的SOA简易框架,它实现了ESB(企业服务总线)。CXF来自于XFire项目,经过改造后形成的,就像目前的Struts2来自WebWork一样。可以看出XFire的命运会和WebWork的命运一样,最终会淡出人们的视线。CXF不但是一个优秀的Web Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,当然他不是最好的,它仅仅实现了SOA架构的一部分。 
  
基于以上的认识,我们可以得知,虽然有了Java6,但是我们还可以选择Axis2、XFire、CXF等。我们不能指望有了Java6 JWS,就能异想天开去实施SOA。如果要与别的语言交互,也许我们还有赖于Axis2等等,当然这不是唯一选择,仅仅是一种可供选择的方案。 
还有,目前很多企业的应用还是基于Java5的,而Java5的项目不会瞬间都升级到Java6,如果要在老项目上做扩展,我们还有赖于其他开源的WS引擎。

发现公司的调用应该是用wsdl2java生成文件 客户端可以直接使用

以下链接是总体方法!!!!!!!!!!!!!!重要

http://www.cnblogs.com/warrior4236/p/5668449.html

http://www.cnblogs.com/intsmaze/p/6055684.html !!!!!!!!!

Spring aop详解

全拼:aspects-oriented project 面向切面 其他的有OOP object-oriented project 面向对象
神一样的AspectJ AOP的领跑者
例子:

这里先进行一个简单案例的演示,然后引出AOP中一些晦涩难懂的抽象概念,放心,通过本篇博客,我们将会非常轻松地理解并掌握它们。编写一个HelloWord的类,然后利用AspectJ技术切入该类的执行过程。

/** * Created by zejian on 2017/2/15. * Blog : http://blog.csdn.net/javazejian [原文地址,请尊重原创] */public class HelloWord {    public void sayHello(){        System.out.println("hello world !");    }    public static void main(String args[]){        HelloWord helloWord =new HelloWord();        helloWord.sayHello();    }}

编写AspectJ类,注意关键字为aspect(MyAspectJDemo.aj,其中aj为AspectJ的后缀),含义与class相同,即定义一个AspectJ的类

/** * Created by zejian on 2017/2/15. * Blog : http://blog.csdn.net/javazejian [原文地址,请尊重原创] * 切面类 */public aspect MyAspectJDemo {    /**     * 定义切点,日志记录切点     */    pointcut recordLog():call(* HelloWord.sayHello(..));    /**     * 定义切点,权限验证(实际开发中日志和权限一般会放在不同的切面中,这里仅为方便演示)     */    pointcut authCheck():call(* HelloWord.sayHello(..));    /**     * 定义前置通知!     */    before():authCheck(){        System.out.println("sayHello方法执行前验证权限");    }    /**     * 定义后置通知     */    after():recordLog(){        System.out.println("sayHello方法执行后记录日志");    }}

ok~,运行helloworld的main函数:




以上可以帮助我们理解aop,但我们重点还是要放在spring 的aop

我们可以用spring 的aop来做缓存,权限验证、内容处理、事务控制、系统监控(时间)、异常处理
虽然事务控制spring 已经帮我们做了


Shiro(尝试用spring完全整合shiro)

一、架构

要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例:


shiro教程

使用 CAS 在 Tomcat 中实现单点登录

shiro单点登录

  配置的主要目的在于将登录页面改为${cas.server}?service=${cas.client}/login的形式,service后面为本地的回调地址。在cas服务器端登录成功后,会生成ticket返回给客户端,客户端的shiro使用ticket最为凭据保存起来。 

公司就是用这个,暂时不学啦
点击打开链接

Mybatis
使用MyBatis Generator自动创建代码
 
原创粉丝点击