@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order或Ordered接口的影响;
1.@Order的注解源码解读
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
@Documented
public @interface Order {
/**
* 默认是最低优先级,值越小优先级越高
*/
int value() default Ordered.LOWEST_PRECEDENCE;
}
注解可以作用在类(接口、枚举)、方法、字段声明(包括枚举常量);
注解有一个int类型的参数,可以不传,默认是最低优先级;
通过常量类的值我们可以推测参数值越小优先级越高;
2.Ordered接口类
package org.springframework.core;
public interface Ordered {
int HIGHEST_PRECEDENCE = -2147483648;
int LOWEST_PRECEDENCE = 2147483647;
int getOrder();
}
3.创建BlackPersion、YellowPersion类,这两个类都实现CommandLineRunner
实现CommandLineRunner接口的类会在Spring IOC容器加载完毕后执行,适合预加载类及其它资源;也可以使用ApplicationRunner,使用方法及效果是一样的
package com.yaomy.common.order;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @Description: Description
* @ProjectName: spring-parent
* @Version: 1.0
*/
@Component
@Order(1)
public class BlackPersion implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("----BlackPersion----");
}
}
package com.yaomy.common.order;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @Description: Description
* @ProjectName: spring-parent
* @Version: 1.0
*/
@Component
@Order(0)
public class YellowPersion implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("----YellowPersion----");
}
}
4.启动应用程序打印出结果
----YellowPersion----
----BlackPersion----
我们可以通过调整@Order的值来调整类执行顺序的优先级,即执行的先后;当然也可以将@Order注解更换为Ordered接口,效果是一样的
5.到这里可能会疑惑IOC容器是如何根据优先级值来先后执行程序的,那接下来看容器是如何加载component的
@SpringBootApplication
public class CommonBootStrap {
public static void main(String[] args) {
SpringApplication.run(CommonBootStrap.class, args);
}
}
这个不用过多的解释,进入run方法…
public ConfigurableApplicationContext run(String... args) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
ConfigurableApplicationContext context = null;
Collection exceptionReporters = new ArrayList();
this.configureHeadlessProperty();
SpringApplicationRunListeners listeners = this.getRunListeners(args);
listeners.starting();
Collection exceptionReporters;
try {
ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);
ConfigurableEnvironment environment = this.prepareEnvironment(listeners, applicationArguments);
this.configureIgnoreBeanInfo(environment);
Banner printedBanner = this.printBanner(environment);
context = this.createApplicationContext();
exceptionReporters = this.getSpringFactoriesInstances(SpringBootExceptionReporter.class, new Class[]{ConfigurableApplicationContext.class}, context);
this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);
this.refreshContext(context);
this.afterRefresh(context, applicationArguments);
stopWatch.stop();
if (this.logStartupInfo) {
(new StartupInfoLogger(this.mainApplicationClass)).logStarted(this.getApplicationLog(), stopWatch);
}
listeners.started(context);
//这里是重点,调用具体的执行方法
this.callRunners(context, applicationArguments);
} catch (Throwable var10) {
this.handleRunFailure(context, var10, exceptionReporters, listeners);
throw new IllegalStateException(var10);
}
try {
listeners.running(context);
return context;
} catch (Throwable var9) {
this.handleRunFailure(context, var9, exceptionReporters, (SpringApplicationRunListeners)null);
throw new IllegalStateException(var9);
}
}
private void callRunners(ApplicationContext context, ApplicationArguments args) {
List runners = new ArrayList();
runners.addAll(context.getBeansOfType(ApplicationRunner.class).values());
runners.addAll(context.getBeansOfType(CommandLineRunner.class).values());
//重点来了,按照定义的优先级顺序排序
AnnotationAwareOrderComparator.sort(runners);
Iterator var4 = (new LinkedHashSet(runners)).iterator();
//循环调用具体方法
while(var4.hasNext()) {
Object runner = var4.next();
if (runner instanceof ApplicationRunner) {
this.callRunner((ApplicationRunner)runner, args);
}
if (runner instanceof CommandLineRunner) {
this.callRunner((CommandLineRunner)runner, args);
}
}
}
private void callRunner(ApplicationRunner runner, ApplicationArguments args) {
try {
//执行方法
runner.run(args);
} catch (Exception var4) {
throw new IllegalStateException("Failed to execute ApplicationRunner", var4);
}
}
private void callRunner(CommandLineRunner runner, ApplicationArguments args) {
try {
//执行方法
runner.run(args.getSourceArgs());
} catch (Exception var4) {
throw new IllegalStateException("Failed to execute CommandLineRunner", var4);
}
}
到这里优先级类的示例及其执行原理都分析完毕;不过还是要强调下@Order、Ordered不影响类的加载顺序而是影响Bean加载如IOC容器之后执行的顺序(优先级);
个人理解是加载代码的底层要支持优先级执行程序,否则即使配置上Ordered、@Order也是不起任何作用的, 个人的力量总是很微小的,欢迎大家来讨论,一起努力成长!!
6、@Mapper注解: 作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类 添加位置:接口类上面
@Mapper
public interface UserDAO {
//代码
}
如果想要每个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,比较麻烦,解决这个问题用@MapperScan
7、@MapperScan 作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类 添加位置:是在Springboot启动类上面添加,
@SpringBootApplication
@MapperScan("com.winter.dao")
public class SpringbootMybatisDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
}
}
添加@MapperScan(“com.winter.dao”)注解以后,com.winter.dao包下面的接口类,在编译之后都会生成相应的实现类
你可能感兴趣的:(Java,spring,java,后端)
Java基础学习汇总
大鱼等于负
java-基础语法 java
Java基础学习汇总java语言基础java函数和数组java面向对象java异常整理用,早就停更。。。写作不易,如果您觉得写的不错,欢迎给博主点赞、收藏、评论、收藏来一波~让博主更有动力吧!路漫漫其修远兮,吾必将上下求索~
Spring篇
hxung
面试学习使用 spring java 后端
Spring篇1.IOC控制反转IOC(InverseofControl:控制反转)是⼀种设计思想,就是将原本在程序中⼿动创建对象的控制权,交由Spring框架来管理。IOC在其他语⾔中也有应⽤,并⾮Spring特有。IOC容器是Spring⽤来实现IOC的载体,IOC容器实际上就是个Map(key,value),Map中存放的是各种对象。将对象之间的相互依赖关系交给IOC容器来管理,并由IOC容
Java equals 方法详解
hxung
java 开发语言
equals()方法:是一个方法,而非运算符只能适用于引用数据类型Object类中equls()的定义:publicbooleanequals(Objectobj){return(this==obj);}Object类定义的equals()和==的作用是相同的,比较俩地址值是否相同像String,Date,File,包装类等都重写了equals()方法,比较的是对象的“实体内容”是否相同通常情况下
Auto.js学习笔记1:开发需要准备什么工具和编程语言知识?
PYB3
Auto.js # 学习 # 实战 android javascript vscode
什么是Auto.js?根据官方文档定义:Auto.js是一款无需root权限的JavaScript自动化软件。Auto.js是一款安卓手机的应用主要用webview,和微信一样,安装在手机上;Auto.js是开发app脚本(自动化操作、引流脚本、游戏脚本、简单app);Auto.js脚本开发语言是JavaScript;Auto.js看作手机版本的按键精灵就全明白了,但又不能局限于按键精灵(自行补脑
醒醒!临时抱佛脚背Java面试题的在面试官面前是根本没有用的
java15655057970
面试 学习路线 阿里巴巴 java 开发语言
醒醒!临时抱佛脚背Java面试题的在面试官面前是根本没有用的!Java架构老李2020-11-1917:17:09744收藏33分类专栏:Java面试编程语言文章标签:数据库面试javamysql编程语言版权前言其实我之前就跟大家说过,我其实特别不喜欢那种临近面试就提前背啊,记各种题的行为,非常反对!我觉得这种方法特别极端,并且在稍有一点经验的面试官面前是根本没有用的。还有粉丝跟我留言说道:“我们
python网络安全怎么学 python做网络安全
网络安全King
web安全 网络 安全
点击文末小卡片,免费获取网络安全全套资料,资料在手,涨薪更快众所周知,python是近几年比较火的语言之一,它具有简单易懂、免费开源、可移植、可扩展、丰富的第三方库函数等特点,Java需要大量代码的功能同样用python仅短短几行代码就能实现,python具备跨平台特性,Linux和Windows都能使用,所以想不被用于网络安全都难。那么,这门语言究竟都能在网络攻防中实现哪些作用呢?目录扫描:We
华为OD最新机试真题-喊7的次数重排-C++-OD统一考试(E卷)
ai因思坦
华为od c++ 链表 动态规划 算法 开发语言 数据结构
最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客每一题都含有详细的解题思路和代码注释,精选c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,持续跟新。题目描述:喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1,但是当将要喊
使用ezuikit-js封装一个对接摄像头的组件
Abao
javascript vue.js elementui
ezuikit-js是一个基于JavaScript的视频播放库,主要用于在网页中嵌入实时视频流播放功能。它通常用于与支持RTSP、RTMP、HLS等协议的摄像头或视频流服务器进行交互,提供流畅的视频播放体验。主要功能多协议支持:支持RTSP、RTMP、HLS等主流视频流协议。实时播放:低延迟播放实时视频流。多平台兼容:支持PC端和移动端浏览器。丰富的API:提供JavaScriptAPI,方便开发
【算法】初等数论
非 白
算法 开发语言 java
初等数论模取余,遵循尽可能让商向0靠近的原则,结果的正负和左操作数相同取模,遵循尽可能让商向负无穷靠近的原则,结果的正负和右操作数相同7/(-3)=-2.3,产生了两个商-2和-3,取余语言中取-2,导致余数为1;取模语言中取-3,导致余数为-2java中%是取余幂1、暴力幂思想:直接将a连续乘以b遍时间复杂度:O(n)空间复杂度:O(1)//求a^bpubliclongpow(inta,intb
redis常用命令大全
我想去拉萨。
redis redis java 数据库
连接redis#ls#redis-cli连接本地的redis服务停止redisredis-clishutdownEXISTS判断是否存在1为存在0不存在EXPIRE设置有效时间-1永久-2失效key操作命令获取所有键语法:keyspattern127.0.0.1:6379>keys*“javastack”*表示通配符,表示任意字符,会遍历所有键显示所有的键列表,时间复杂度O(n),在生产环境不建议
Java单例模式详解
Qzer_407
java # 设计模式 后端技术栈 java 单例模式 开发语言 设计模式
Java单例模式详解一、Java单例模式的概念和原理单例模式(SingletonPattern)是一种常用的软件设计模式,其核心思想是确保一个类仅有一个实例,并提供一个全局访问点来获取该实例。在Java中,单例模式通过私有化构造函数,并提供一个静态方法来返回类的唯一实例来实现。这样做的好处是控制资源访问,减少内存消耗,并确保数据的一致性。二、Java单例模式的实际应用场景和优势实际应用场景:配置管
【Java】单例模式
非 白
java 单例模式 笔记
单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式包含懒汉式和饿汉式,运行有且仅有一个实例化对象,只会new一次,两者区别在于何时new一个对象原理:如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对
Java基础:策略模式与Spring 源码中策略模式的应用
生活诙谐号
Java基础 设计模式 Spring源码 java 策略模式 spring
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式提供了用一系列可互换的算法或策略来封装算法族,并使它们可以相互替换。策略模式鼓励使用对象组合而不是继承来实现具有多种行为的系统。以下是策略模式的组成部分以及一个详细的Java示例:组成部分:策略接口(Strategy):定义所有支持的算法的公共接口。通常是一个接口或抽象类,它规定了所有具体策略类需要实现的方法。publicinte
【可靠有效】springboot使用netty搭建TCP服务器
weixin_43833540
spring boot netty tcp
NettyNetty是一个高性能、异步事件驱动的网络应用程序框架,它提供了对并发和异步编程的抽象,使得开发网络应用程序变得更加简单和高效。在Netty中,EventLoopGroup是处理I/O操作的多线程事件循环器。在上面的示例中,我们创建了两个EventLoopGroup实例:bossGroup和workerGroup。bossGroup负责接收客户端的连接请求,并将这些连接分配给worker
Mac端安装配置Java8环境。
wangyanfei2021
java jdk mac
文章目录一、Mac端安装Java,并配置环境变量。1.下载JDK8版本2.配置环境变量总结一、Mac端安装Java,并配置环境变量。以最快的方式使Java在你的电脑运行起来。1.下载JDK8版本浏览器下载点击:OracleJDK.Mac版本下载以.dmg结尾的开发包。下载完成双击安装,一路继续。2.配置环境变量如果是第一次配置,可以在终端使用touch~/.bash_profile创建配置文件,.
langchain4j+ollama+deepseek小试牛刀
deepseek
序本文主要研究一下如何使用langchain4j集成ollama+deepseek步骤pom.xmldev.langchain4jlangchain4j-spring-boot-starter${langchain4j-spring.version}dev.langchain4jlangchain4j-ollama-spring-boot-starter${langchain4j-spring.v
Java本地应用 使用spring 注解初始化
LiTianao88
Java Spring spring 本地应用 class
service类及接口ISample.Java[java]viewplaincopyprint?/****/packagetest;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;/***@Cla
分布式之Raft算法
点滴~
分布式
参考:分布式算法-Raft算法|Java全栈知识体系Raft算法详解|JavaGuide分布式|CS-Notes面试笔记
分布式之Gossip协议
点滴~
分布式
目录Gossip协议Redis如何通过Gossip协议进行通信的?Gossip协议参考:Gossip协议详解|JavaGuideRedis进阶-高可拓展:分片技术(RedisCluster)详解|Java全栈知识体系Redis如何通过Gossip协议进行通信的?在RedisCluster中使用Gossip协议来实现节点之间的通信
原来使用 Spring 实现策略模式可以这么简单
java小斌
策略模式 spring java
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法,可以替代代码中大量的if-else。比如我们生活中的场景:买东西结账可以使用微信支付、支付宝支付或者银行卡支付,这些交易方式就是不同的策略。那么在什么时候使用策略模式呢?在《阿里巴巴Java开发手册》中有提到当超过3层的if-else的逻辑判断代码可以使用策略模式来实现。在Spring中实现策略模式的方式有
SpringBoot WebSocket连接报 no mapping for GET
lijiabin417
框架和工具 websocket spring boot java nginx
一、问题描述一次websocket连接调试中,触发了nomappingforGET异常,检查连接路径后未发现问题;二、问题解决2.1检查websocket注解@ServerEndpoint("/path")@ComponentpublicclassWebsocketDemoServer{}2.2websocket相关配置补充@ConfigurationpublicclassWebsocketCon
深入解析Java线程锁机制:从原理到最佳实践
XU磊260
JAVA java
##引言在多线程编程中,线程安全是开发者面临的核心挑战之一。当多个线程并发访问共享资源时,如果没有正确的同步机制,就可能出现数据不一致、竞态条件等问题。Java提供了多种线程锁机制来保障线程安全,本文将深入探讨Java中的各种锁实现、使用场景和优化策略。一、线程锁的核心作用1.1互斥访问确保同一时刻只有一个线程可以访问临界区代码,防止并发修改导致的数据不一致。1.2可见性保证通过锁机制强制内存屏障
springboot 基于@Scheduled注解 实现定时任务
beidaol
springboot 定时器 定时器 Scheduled
前言定时任务通常有三种完成方法java自带的APIjava.util.Timer类java.util.TimerTask类在JDK中,内置了两个类,可以实现定时任务的功能:java.util.Timer:可以通过创建java.util.TimerTask调度任务,在同一个线程中串行执行,相互影响。也就是说,对于同一个Timer里的多个TimerTask任务,如果一个TimerTask任务在执行中,
Spring Autowired扩展策略模式
WwJoyous
java 策略模式 spring java
背景策略模式在实际开发中使用非常频繁的设计模式;通常都是写完策略类后,还要专门写一个类进行策略分发,比较繁琐;spring中利用@Autowired注解,可以支持自动注入list、map类型@AutowiredprivateMapmap;map的key,是实例bean的beanName;往往在实际使用过程中,策略key是业务场景类型还不是beanName;实现基于注解的方式完成策略模式通过spri
SVG DOM及DOM操作介绍 - HTML5教程技巧
PmtxPhp
html5 前端 html H5
SVG(ScalableVectorGraphics)是一种用于描述二维矢量图形的XML标记语言,它可以实现高质量的图形渲染效果。在HTML5中,SVG成为了一种重要的图形标准,可以通过JavaScript的DOM(DocumentObjectModel)来对SVG文档进行操作和控制。本文将介绍SVGDOM及其相关的DOM操作,以帮助您深入了解和使用SVG图形。SVGDOM简介SVGDOM是一种用
Spring策略模式示例
小徐博客
spring 策略模式 java
在本例中,我们将学习中的策略模式春天。我们将介绍注入策略的不同方法,从简单的基于列表的方法到更有效的基于地图的方法。为了说明这个概念,我们将使用《哈利·波特》系列中的三个不可饶恕咒——阿瓦达·凯达维拉、克鲁西奥和因佩里奥。战略模式是什么?战略模式是一种设计原则,允许您在运行时在不同的算法或行为之间切换。它允许您在不改变应用程序核心逻辑的情况下插入不同的策略,从而使您的代码具有灵活性和适应性。这种方
Spring Bean 生命周期的执行流程详解
豪宇刘
java 开发语言
Spring框架以其强大的依赖注入和生命周期管理功能而闻名。理解SpringBean的生命周期对于开发者来说至关重要,因为它可以帮助我们更好地设计和优化应用,特别是在处理复杂的依赖注入和初始化逻辑时。本文将详细介绍SpringBean生命周期的五个主要阶段:创建前准备阶段、创建实例阶段、依赖注入阶段、容器缓存阶段和销毁实例阶段,并通过简单的示例帮助你更好地理解这一过程。一、SpringBean生命
android学习,android后端服务器的搭建
2401_84413531
程序员 android 学习 服务器
那么在市场紧缩以及大前端的趋势下,我们移动端程序员如何突破职业瓶颈,保持个人的核心竞争力呢?一、硬技能:专业的技术知识1.Java/Kotlin开发语言Java常用数据结构:ArrayList、Vector、CopyOnWriteArrayList、HaspMap、ConcurrentHashMap、HashTable等使用场景。JVM虚拟机包括Java内存管理,GC垃圾回收机制,类加载机制。推荐
51_Lua面向对象编程
袁庭新
Redis 7企业级开发实战教程 Lua 面向对象编程特性 Lua中实现面向对象的语法 Lua面向对象编程 Lua继承 Redis7 袁庭新
面向对象编程(ObjectOrientedProgramming,OOP)是一种非常流行的计算机编程架构。像C++、Java、Objective-C、Smalltalk、C#、Ruby等编程语言都支持面向对象编程。1.面向对象编程特性面向对象编程是一种编程范式,它使用“对象”来设计软件。对象是数据和行为的封装单元。面向对象编程的核心概念包括:类(Class):定义对象的蓝图,包括属性(数据字段)和
如何选择 Linux 操作系统版本??思维导图 代码示例(java 架构)
用心去追梦
java hibernate spring
如何选择Linux操作系统版本?选择适合的Linux操作系统版本是一个关键决策,它取决于多个因素,包括但不限于硬件兼容性、软件需求、社区支持以及特定应用的需求。以下是帮助你做出最佳选择的一些指导原则:选择Linux版本的因素用途服务器:如果你需要一个稳定可靠的环境来运行Web服务器、数据库或其他服务,那么可以选择长期支持(LTS)版本,如UbuntuLTS、CentOS/RHEL等。桌面:对于个人
Spring4.1新特性——Spring MVC增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
mysql 性能查询优化
annan211
java sql 优化 mysql 应用服务器
1 时间到底花在哪了?
mysql在执行查询的时候需要执行一系列的子任务,这些子任务包含了整个查询周期最重要的阶段,这其中包含了大量为了
检索数据列到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方
花费时间,包括网络、cpu计算、生成统计信息和执行计划、锁等待等。尤其是向底层存储引擎检索数据的调用操作。这些调用需要在内存操
windows系统配置
cherishLC
windows
删除Hiberfil.sys :使用命令powercfg -h off 关闭休眠功能即可:
http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html
类似的还有pagefile.sys
msconfig 配置启动项
shutdown 定时关机
ipconfig 查看网络配置
ipconfig /flushdns
人体的排毒时间
Array_06
工作
========================
|| 人体的排毒时间是什么时候?||
========================
转载于:
http://zhidao.baidu.com/link?url=ibaGlicVslAQhVdWWVevU4TMjhiKaNBWCpZ1NS6igCQ78EkNJZFsEjCjl3T5EdXU9SaPg04bh8MbY1bR
ZooKeeper
cugfy
zookeeper
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步, 配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端API。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来lea
网络爬虫的乱码处理
随意而生
爬虫 网络
下边简单总结下关于网络爬虫的乱码处理。注意,这里不仅是中文乱码,还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为他们的解决方式 是一致的,故在此统一说明。 网络爬虫,有两种选择,一是选择nutch、hetriex,二是自写爬虫,两者在处理乱码时,原理是一致的,但前者处理乱码时,要看懂源码后进行修改才可以,所以要废劲一些;而后者更自由方便,可以在编码处理
Xcode常用快捷键
张亚雄
xcode
一、总结的常用命令:
隐藏xcode command+h
退出xcode command+q
关闭窗口 command+w
关闭所有窗口 command+option+w
关闭当前
mongoDB索引操作
adminjun
mongodb 索引
一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: &nbs
成都软件园实习那些话
aijuans
成都 软件园 实习
无聊之中,翻了一下日志,发现上一篇经历是很久以前的事了,悔过~~
断断续续离开了学校快一年了,习惯了那里一天天的幼稚、成长的环境,到这里有点与世隔绝的感觉。不过还好,那是刚到这里时的想法,现在感觉在这挺好,不管怎么样,最要感谢的还是老师能给这么好的一次催化成长的机会,在这里确实看到了好多好多能想到或想不到的东西。
都说在外面和学校相比最明显的差距就是与人相处比较困难,因为在外面每个人都
Linux下FTP服务器安装及配置
ayaoxinchao
linux FTP服务器 vsftp
检测是否安装了FTP
[root@localhost ~]# rpm -q vsftpd
如果未安装:package vsftpd is not installed 安装了则显示:vsftpd-2.0.5-28.el5累死的版本信息
安装FTP
运行yum install vsftpd命令,如[root@localhost ~]# yum install vsf
使用mongo-java-driver获取文档id和查找文档
BigBird2012
driver
注:本文所有代码都使用的mongo-java-driver实现。
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在
JSONObject以及json串
bijian1013
json JSONObject
一.JAR包简介
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
1.commons-lang-2.0.jar
2.commons-beanutils-1.7.0.jar
3.commons-collections-3.1.jar
&n
[Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性
bit1129
zookeeper
为了说明问题,看个简单的代码,
import org.apache.zookeeper.*;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocal
【Scala十二】Scala核心六:Trait
bit1129
scala
Traits are a fundamental unit of code reuse in Scala. A trait encapsulates method and field definitions, which can then be reused by mixing them into classes. Unlike class inheritance, in which each c
weblogic version 10.3破解
ronin47
weblogic
版本:WebLogic Server 10.3
说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录
例如我的做测试的域的根目录 DOMAIN_HOME=D:/Weblogic/Middleware/user_projects/domains/base_domain
1.为了保证操作安全,备份%DOMAIN_HOME%/security/Defa
求第n个斐波那契数
BrokenDreams
今天看到群友发的一个问题:写一个小程序打印第n个斐波那契数。
自己试了下,搞了好久。。。基础要加强了。
&nbs
读《研磨设计模式》-代码笔记-访问者模式-Visitor
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
interface IVisitor {
//第二次分派,Visitor调用Element
void visitConcret
MatConvNet的excise 3改为网络配置文件形式
cherishLC
matlab
MatConvNet为vlFeat作者写的matlab下的卷积神经网络工具包,可以使用GPU。
主页:
http://www.vlfeat.org/matconvnet/
教程:
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html
注意:需要下载新版的MatConvNet替换掉教程中工具包中的matconvnet:
http
ZK Timeout再讨论
chenchao051
zookeeper timeout hbase
http://crazyjvm.iteye.com/blog/1693757 文中提到相关超时问题,但是又出现了一个问题,我把min和max都设置成了180000,但是仍然出现了以下的异常信息:
Client session timed out, have not heard from server in 154339ms for sessionid 0x13a3f7732340003
CASE WHEN 用法介绍
daizj
sql group by case when
CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN
PHP技巧汇总:提高PHP性能的53个技巧
dcj3sjt126com
PHP
PHP技巧汇总:提高PHP性能的53个技巧 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注: PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍
Yii框架中CGridView的使用方法以及详细示例
dcj3sjt126com
yii
CGridView显示一个数据项的列表中的一个表。
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。 CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。
实例代码如下:
Maven项目打包成可执行Jar文件
dyy_gusi
assembly
Maven项目打包成可执行Jar文件
在使用Maven完成项目以后,如果是需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁琐的操作简单。我们可以通过插件完成这项工作,使用assembly插件。具体使用方式如下:
1、在项目中加入插件的依赖:
<plugin>
php常见错误
geeksun
PHP
1. kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastc
修改linux的用户名
hongtoushizi
linux change password
Change Linux Username
更改Linux用户名,需要修改4个系统的文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
古老/传统的方法是使用vi去直接修改,但是这有安全隐患(具体可自己搜一下),所以后来改成使用这些命令去代替:
vipw
vipw -s
vigr
vigr -s
具体的操作顺
第五章 常用Lua开发库1-redis、mysql、http客户端
jinnianshilongnian
nginx lua
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。
一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。
Redis客户端
lua-resty-r
zkClient 监控机制实现
liyonghui160com
zkClient 监控机制实现
直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。另外如果要使用抽象级别更高的功能,比如分布式锁,leader选举
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句
pda158
mysql
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:
方法一:SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
方法二:SELECT column_name from information_schema.colum
程序员对英语的依赖
Smile.zeng
英语 程序猿
1、程序员最基本的技能,至少要能写得出代码,当我们还在为建立类的时候思考用什么单词发牢骚的时候,英语与别人的差距就直接表现出来咯。
2、程序员最起码能认识开发工具里的英语单词,不然怎么知道使用这些开发工具。
3、进阶一点,就是能读懂别人的代码,有利于我们学习人家的思路和技术。
4、写的程序至少能有一定的可读性,至少要人别人能懂吧...
以上一些问题,充分说明了英语对程序猿的重要性。骚年
Oracle学习笔记(8) 使用PLSQL编写触发器
vipbooks
oracle sql 编程 活动 Access
时间过得真快啊,转眼就到了Oracle学习笔记的最后个章节了,通过前面七章的学习大家应该对Oracle编程有了一定了了解了吧,这东东如果一段时间不用很快就会忘记了,所以我会把自己学习过的东西做好详细的笔记,用到的时候可以随时查找,马上上手!希望这些笔记能对大家有些帮助!
这是第八章的学习笔记,学习完第七章的子程序和包之后