碎片知识
1.Executors提供线程池
ExecutorService pool = Executors.newFixedThreadPool(5);
ExecutorService submit()可以接受runnable和callable,有返回值,execute()接受runnable,无返回值
2.@Transcational(rollbackFor = Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。
3.angular分层
dao层,对应angularmodel层,与数据库进行交互,在angularJS里主要是ajax
service层,主要写逻辑代码,也可以当做持久化数据容器,供不同controller调用
controller,控制器,尽量不要写不必要的逻辑,写到service里
4.angular的服务(service)用于方便的用在angularJS应用中,例如$location(当前url,各种路径),$http(向服务器发送请求,应用响应服务器返回数据),$q(处理异步通知等),还可以创建自定义服务(service,factory,provider)
$http用法:
$http.get('/someUrl', config).then(successCallback, errorCallback);
自定义服务-service用法:
var app = angular.module('myApp', []);
app.service('myservice', function() {this.myFunc= function(x){...}}});
app.controller('myCtrl', function($scope, myservice) {$scope.name= myservice.myFunc(x);});
service方式创建自定义服务,相当于new一个对象:var s=new myservice(),要把属性和方法添加到this上才可以在controller调用
自定义服务-factory用法:
var app = angular.module('myApp', []);
app.service('myfactory', function() {var service={};service.x="a";service.get=function(x){...}});
app.controller('myCtrl', function($scope, myfactory) {$scope.name= myfactory.get(x);});
factory方式创建服务,返回一个有属性有方法的对象,相当于var f=myfactory();
自定义服务-provider用法:
var app = angular.module('myApp', []);
app.config(function(myProviderProvider){ myProviderProvider.setName("amm"); });
app.provider('myProvider',function(){var name="";this.setName=fucntion(x){name=x};this.$get=function(){}});
provider方式创建服务是唯一能使用config()函数的servie,好处是在service对象启用之前,可以先进行模块范围的配置和修改
注意的是,在config函数里注入provider时,名字应该是providerName+Provider,唯一可以在控制器中访问的属性和方法是通过$get函数返回的内容
5.ui-router路由,$urlRouter,$state,$stateProvider,$urlRouterProvider,ui-sref...
与angular自带的路由ngRouter不同的是,ngRouter针对于单视图,ui-router可用于多视图(点击一个link,需要分别在不同的地方跳转到两个不同的页面)
$urlRouterProvider负责监听$location,当$location变化时,$urlRouterProvider开始在一个规则的列表中一个个的查找,直到找到匹配的值。
$state服务负责代表状态及提供状态之间的转换。它还提供你当前的状态及上一个状态。
$state的resolve属性用于解决angularJS应用渲染两遍的问题(先渲染元素后呈现数据),resolve包含的属性以函数形式定义并返回对象,然后将属性注入对应控制器中即可使用。
resolve:{user:function(){return {name:"amm",email:"qq.com"}}};
app.controller("myController",function($scope,user)){$scope.name=user.name;}
ui-sref跳转到指定路由
$state.get(stateOrName,context);返回任何指定的状态或所有状态的配置对象。
$state.go(to,params,options);to:string,即将跳转的状态。params:object,跳转所带的参数。options:object,可选配置对象。
$stateProvider是处理路由状态的服务,路由的状态反映了该项在应用程序中的位置,描述了在当前状态下UI是应该怎么样的,并且该做什么。
$stateProvider.state(name,stateConfig);注册一个状态,并给定其配置
6.Linux
通常用&在程序尾部来让程序自动运行
nohub让程序在后台运行
iptables 查看和开启关闭端口
7.CDN
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
8.sql中where 1=1作用
这是用在if判断前,防止where后第一个词就是and导致的语法错误