java类通过反射读写私有变量

发表于4年前(Apr 14, 2016 4:51:44 PM)  阅读 857  评论 0

分类: Java

标签: 反射 private 私有变量 私有方法 reflect

我们写代码时会出现很多private的属性和方法,不允许用户直接访问这些,而是通过public的接口来访问。根据软件设计的开闭原则,一般来说当软件需要修改时,是通过扩展来完成,而不是通过对原有代码修改,即对扩展开放,对修改关闭。

在使用别人写的类库时,可能会遇到需要读写私有变量,或方法的情况,出现这种情况通常都是因为该类库没有很好地考虑到用户可能遇到的情况,没提供扩展的方法,这时,我们可以通过java的放射机制来实现我们的需求。

设置私有变量工具类示例代码(其他类似):

package com.cangzhitao.common.util;

import java.lang.reflect.Field;

/**
 * Created by cangzhitao on 16/4/14.
 */
public class ReflectUtil {

    public static Object setFiled(Object tar
......

指定log4j配置文件路径

发表于4年前(Apr 13, 2016 2:56:57 PM)  阅读 2203  评论 0

分类: Java

标签: log4j classpath classpath* Log4jConfigListener log4jConfigLocation

log4j是使用频率很高的java日志组件,一般项目中都会在class根目录创建一个log4j.properties配置文件,Spring容器会默认在class根目录中寻找log4j.properties,约定优于配置。但难免存在需要显示指定的情况,这时,我们可以在web.xml中进行如下配置:

<context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>
            WEB-INF/classes/log/log4j.properties
        </param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.ut
......

城市、行业、职位数据收录

发表于4年前(Mar 30, 2016 4:42:52 PM)  阅读 1449  评论 0

分类: Java WEB前端

标签: 城市 行业 职位 招聘 数据抓取

1、前言

系统中选择城市是很常见的一个功能,而选择行业和职位是一个招聘网站最基本的功能,这几个功能一般不是几个下拉列表进行联动,就是弹出一个大面板进行选择,不管前台怎么展示,我们首先需要最基础的数据,本文就是来解决这几个基础数据列表怎么获取。

2、城市

城市在这里正确的表达方式应该是行政区划,这个行政区划代码在国家统计局网站上是有的。http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/​

打开最新的《最新县及县以上行政区划代码(截止2014年10月31日)》,可以看到我国行政区划分以及编码,细看可以发现,行政编码共6位数字,每两位为一个标识,分为省市区三级。直接复制网页内容,存在本地,再用程序稍微处理或者入库就可以作为数据源使用了(注意:编码与名称之间包含全角的空格,处理时需要注意)。

在国家统计局网站上还可以

......

邮件服务器自动安全扫描导致激活邮件失效

发表于4年前(Dec 16, 2015 10:13:11 AM)  阅读 1045  评论 0

分类: 开发运维环境

标签: 用户注册 邮箱激活 激活失效

1、发生的问题

上周开发的一个APP做上线测试,用户注册功能发现出现一点问题。用户注册的流程为:使用APP填写注册申请,服务器记录注册信息,发送注册用户激活邮件,用户登录邮箱,点击激活链接,完成激活操作,然后可以登录APP。线上问题展现为,用户注册完直接变成了正式用户,激活邮件里面的链接已经失效。

2、问题产生的原因

本地单步调试一切正常,服务器测试怎么都不行,折腾了一个多小时,终于推测出问题原因,正如标题所描述的那样,原来是邮件服务器自动安全扫描造成的。一般邮件服务器都会有安全扫描机制,用来过滤病毒以及垃圾邮件等,这里提一下,笔者使用的是QQ邮箱。对于激活邮件,邮件服务器扫描了该链接,然后导致该链接已经激活过。至于为什么本地正常,那是因为本地使用的是内网地址,邮件服务器访问不到,所以才导致了该问题的产生,第一次做类似功能,囧。

3、问题解决方法

问题原因找到了,现在要解决的问题就是如何避免邮件服务器扫描激活链接,或者判断链接的访问者,是否是邮件服务器,或者机器人访问,笔者猜想大部

......

UIAlertController的使用

发表于4年前(Nov 2, 2015 10:32:42 PM)  阅读 6305  评论 0

分类: 移动应用开发 ios

标签: UIAlertController UIAlertActionStyle Alert ActionSheet

应该是从ios8开始,ios将UIAlertView以及UIActionSheet两个控件的功能都合并到UIAlertController了,因为两者无论在功能还是视图上都极其相近,接下来将简单描述下UIAlertController的使用。

1.对话框:

我们先看对话框的最终效果

对应的代码如下:

func showPop1() {
        let alertController = UIAlertController(title: "确认提醒", message: "你确定要提交订单吗?", preferredStyle: UIAlertControllerStyle.Alert)
        
        let okAction = UIAlertAction(title: "Ok", style: UIAlertAction
......

使用xib进行UI封装

发表于4年前(Oct 31, 2015 10:14:35 PM)  阅读 1728  评论 0

分类: 移动应用开发 ios

标签: xib loadNibNamed

ios界面设计主要分为三种方式,一是使用storyboard方式,这也是苹果现在主推的开发方式,二是使用完全使用代码进行UI设计,storyboard的优势是可以使用拖拽的方式快速构建UI界面,几乎不需要编写什么代码,而使用代码的方式则是更适合多人协作开发。使用xib+代码进行开发则介于两者之间,xib更利于UI的封装以及重用。

本文主要介绍如何使用xib进行ios界面设计,这里假设我们要做一个文章标题的UI界面,一个简单的居中对齐的UILabel。

1.新建一个Single View Application,添加一个UI界面,这里我们命名为XibView:

2.打开XibView,可以看到跟storyboard类似的设计界面,我们可以在里面添加任何元素:

3.现在我们拖入一个UILabel进来,并将它与XibView的四边的距离约束为0,并将UILabel的对齐方式设为居中对齐:

4.新建一个Cocoa Touch Class类,命名为

......

linux修改系统时区和时间

发表于4年前(Oct 31, 2015 9:13:01 PM)  阅读 876  评论 0

分类: 开发运维环境

标签: 修改时区 修改时间

新部署的环境,发现文章显示的发布时间不对,查看估计服务器时间不准,上服务器看时间是正确的,那就应该是时区不对,使用下面的方法修改服务器的时区:

将时区设置为上海所在的时区,即东八区。

若要修改时间,使用date -s "2008-08-08 12:00:00" 命令。

修改完时区,如果有服务使用系统时间的,如mysql服务,必须重启相应的服务。

Xcode7封装自定义动态库

发表于4年前(Oct 21, 2015 12:05:46 PM)  阅读 6655  评论 1

分类: 移动应用开发 ios

标签: 动态库 framework framework search paths copy items if needed

封装重用是软件编程人员经常做的事,在使用一门语言时,我们经常会用到其他软件开发人员提供的工具,像github以及code4app网站上就提供了很多基于ios应用封装的工具,这些工具能减少我们很多工作。当熟悉了一门语言后,有想法的程序员都会想到封装自己的工具,阅读完本文,您将了解如何使用Xcode7,swift语言来封装一个动态库。

1、首先我们建立一个Cocoa Touch Framework工程,这里我命名为myframework:

2、在myframework添加我们的一个自定义Person类

注意,class以及init构造方法前面都必须使用public修饰,或者其他工程不能引用到。

3、先选择IOS Device版本进行编译

此时可以看到Products目录下的myframework.framwork文件由原来的红色变成了黑色(红色表示该文件不存在),说明我们成功生成了.framewor

......

一个ios应用的基本目录结构以及如何确定首页

发表于4年前(Oct 21, 2015 10:47:45 AM)  阅读 1646  评论 0

分类: 移动应用开发 ios

标签: ios应用目录结构 storyboard LaunchScreen

读完本文您将了解一个ios应用工程的基本目录结构,以及从启动开始,是如何定位到您要展示的页面内容的。

使用Xcode7新建一个最简单的Single View Application,工程目录结构如下:

AppDelegate.swift,为整个应用的一个代理,提供程序启动、退出等类似监控的接口。  

ViewController.swift,做过ios开发的都知道,他就是我们默认的首页,这里要区分一下首页和启动页,App应用一般都有一个启动页面,像经典的微信地球村界面,就这就是启动界面,启动界面一般是过几秒自动消失,然后进入到应用的首页。

Main.storyboard,故事板,简称sb,通许多其他应用开发一样,Xcode提供的可视化开发工具,一直以来,使用storyboard开发,使用代码开发,以及使用xib+代码开发,这三种方式孰优孰劣都有争议,但根据Xcode版本的更新来看,苹果以后应该会主推storyboard开发。

Assets.xcass

......