csdn博客:http://blog.csdn.net/lhc1105
一,配置文件的延迟加载 Spring默认在创建BeanFactory时,将配置文件中所有的对象实例化并进行注入。 使用延迟初始化之后,等到用到bean的时候才去初始化。
对于对象的注入,我们使用ref方式,可以指定注入的对象,下面看下对于基本类型的注入,以及当spring无法转换基本类型进行注入时,如何编写一个类似转换器的东西来完成注入。
先写一个比较常见的结构: 其中UserDao跟UserManagerImpl是层与层之间的接口。 下面用这些类来演示setter方式注入跟构造函数注入来解决Manager层注入Dao问题。
概述 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development andDesign中阐述的部分理念和原型衍生而来。
刚开始做java web开发,感觉80%的东西跟.net平台还是蛮相似的。所以入手也木有啥压力。前段时间做一个东西,数据访问层是比较原始的JDBC写的,每次测试方法,都要写一个main方法在类里面进行测试,感觉很不爽:一是这个测试方法本来就不属于DAO的方法,写完之后还要删去,但是下次用到还得写。
先说下为啥要做这个东西: 当初做.net的是,电脑上配置了如下:vs2008+vs2013+IIS+SQL SERVER 08R+Memcache服务;中间玩儿PHP,简单装了个wamp;然后后来做安卓,又自己搭建了一套eclipse+JDK8+SDK(忘了啥版本)+AS;后来做java web ,然后又是各种环境上身。
这件事其实发生在本周三吧,记得比较清楚是因为我周四要休息,。 当时.NET项目那边的一个技术支持找到我,希望我能做一个SVN分支版本的规划和培训文档什么的。其实当时自己手下也没有什么事情,本来是应该答应的。
最近看到到Struts1与Struts2的比较,说Struts1的控制器是单例的,线程不安全的;Struts2的多例的,不存在线程不安全的问题。之后又想到了之前自己用过的HttpHandler。
Struts2 概述 1,仍然是一个基于请求响应的MVC框架 2,Struts2不是Struts1的升级 3,Struts2与Struts1的体系结构差距非常大 4,Struts2采用了另一个MVC框架WebWork的核心设计 5,Struts2更优秀:松耦合设计。
一,读取PC的locale信息 Locale信息是由语言跟国家代码组成的,在Java中,提供了Locale类对应语言信息。 /* * //获取local信息 Locale defaultLocale = Locale.
一,redirect属性 在使用Action进行转向的时候,会发现浏览器的地址是不变的,只是服务器内部的一个跳转。比如,我在forward设置转到index.jsp页面,发现浏览器地址还是**.index.action;如果想转向的时候,为重定向,可以使用: 二,ActionForward的全局与局部 当有多个Action里面配置了重复的转向的时候,比如,我每次跳转前判断完用户是否登录,都要在相应的Action里面配置一个forward作为用户未登录时候的跳转,这样就出现了forward重复配置的情况。
在struts1中,使用了beanutils来处理类型的一些基本类型的转换。 当需要时候,可以定义自己的转换器,下面以java.util.Date为例来看下如何定义转换器。
在struts1中,框架本身引入commons-fileupload: 只需几行代码+配置,便可以完成文件的上传。 首先使我们form表单里面的配置: 然后在ActionForm中,将我们的input为file的提交项对应为FormFile类型: 在Action中,通过我们的ActionForm就可以直接拿到上传文件的信息,进行存盘,入库等操作。
在struts1中,我们可以使用ActionForm来获取从client端提交上来的数据,并通过action配置中的name属性,将某个ActionForm配置到某次请求应答的Action中,作为本次请求应答的数据传输介质,ps,其实还是侧重于数据在客户端的获取,因为赋值部分框架帮我们做好了。
刚困死了,可是手上还在debug一个东西。然后就发现 我的EL表达式都跑到页面上去了,处于半睡半醒的状态,又restart 了下Tomcat,发现还没好,判断应该是真的有问题。
一,使用Servlet来处理请求响应 当客户端提交数据之后,接着发送请求,请求被封装成对象,服务器接收到请求,根据请求的URL,来判断将请求对象交由哪个Servlet处理。
在静态代理中,我们在调用target类的时候,都是先拿到proxy类,因为proxy类中将target类作为了成员变量,并且跟target类继承了一样的接口,具有相同的方法,所以,在proxy类中,通过调用target类的方法来对目标类方法的执行前后插入特殊操作。
简介 Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。
Findbugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种Internationalization,12种Malicious code vulnerability,27种Multithreadedcorrectness,23种Performance,43种Dodgy。
今天将一个oracle的数据库生成到了mySQL,因为代码比较原始,是JDBC访问数据库的,所以,对数据库的分页查询一下子就查不出来了。小忧伤( ⊙ o ⊙ )啊! 先看下之前查询的code: public PageModel findUserLis...
今天在调ViewPager的时候,感觉ViewPager+Fragment这种做法更灵活,所以,现在拿出来Fragment再整理下。 一,为什么要用Fragment 1,灵活布局 Fragment表现Activity中用UI的一个行为或者一部分。
思路: 每一个Tab里面的内容都放到一个fragment里面,然后再每个fragment里面处理具体的业务逻辑,在主页面上,像加入view那样加入fragment.
经过一个简单的Demo,基本上做出了个可以实现功能的滑动页面,但是这个东西复用性差,而且还有一些小bug,不喜欢,再改! /* * 功能:改进滑动页面效果 * 作者:刘慧超 * 时间:2015年11月16日01:18:07 * */ public c...
不做安卓好几天了,最近两天一直在按照设计图布web页面,头都大了。但是感觉自己布页面的水平还是可以滴,布完页面之后瞬间感觉自己萌哒哒的~嘿嘿,不过安卓好几天不做了,手都生了,今天被一个大哥叫过去调ViewPager的一个东西,搞半天没弄出来,╮(╯▽╰)╭,看来Tech support还要继续学习。
前段时间用dom4j读取配置文件的时候,当时报了个小bug,后来中间去做别的东西了,几天又把那段代码拿出来调了下,发现ok了。 一,基本使用 为了使用这个东西读配置文件,首先引入: 下面是测试代码: pu...
Maven作用 maven是一个比Ant更先进的项目管理工具。它采用一种“约定大于配置”的策略来管理项目。 不仅用于把源码构建成可以发布的项目,还可以生成报告,生成web站点等。 安装目录结构 Bin maven的可执行性命令。
最近两天刚开始用Volley,发现加上框架之后,代码精简了不少,被精简的代码主要体现在了:1,不用去创建新的线程类:一般我们在开启新线程的时候,都使用的是创建新的线程类,重写run方法,将可能会阻塞UI线程的操作放在新线程里面,当新线程执行完成之后,发送一个Message到UI线程,UI线程接收到消息之后,会对消息进行处理,从而完成我们的更新UI的操作。
以前开发APP的时候,一直比较老土,就是Eclipse+手机调试。其实也一直想换成AS+Genymotion,感受下google力推的IDE,现在离职了,终于有机会重配开发环境了。
今天上午,从github上扒下来一套代码,但是因为目录结构不一样的原因,不得不装一个AS,然后把项目导入AS里面。但是导入后出现了乱码。 下面看下AS的设置,去掉乱码。
到昨天上午为止,第一款参与开发的APP已经基本完成。这是我第一次参与APP的开发,以前做的是web 开发,在开发过程中,还是感觉到了一些不同的。这个项目让我的关注点发生了一些变化。
一,添加 case R.id.imgBtnAdd:/*添加列表*/ if(SetTempListView.getChildCount()>5){ Toast.
在上篇Android——ListView实现简单列表 中,利用SimpleAdapter实现了简单的列表绑定。在本文中,主要是通过重写getView方法,来看下adapter内部绑定数据大致是个什么流程。
最近做一个black ant的温控系统项目,里面有很多列表项,但是用的时候,感觉封装的已经挺好的了,自己拿过来改改代码就行了,所以用过之后也没什么感觉。现在趁着闲暇时间整理下简单的ListView,体会下这个东西到底是怎么个原理。
在安卓开发中,R类是一个自动生成的类,放置在gen目录下,负责管理应用中的资源。R文件出错是一个蛮常见的问题,下面来总结下它为啥会报错以及出错了该怎么处理。 先说为啥会报错: 刚说了,这个类负责管理资源,所以它除了错误,首先你就要先去检查你的资源文件是否都正确,也就是你res文件夹下的东西。
一,在设备的旋转的时候,发生了什么? 设备旋转时候,当前的activity实例会被系统销毁,然后创建一个新的Activity实例。 接下来我们通过检测Activity的生命周期来观察下: 上面是我启动activity时依次发生的事件,接下来我旋转设备: 可以看到,旋转的时候,第一个activity被destroy掉,之后新的activity被创建。
1,Toast // 登录成功之后跳转到home Toast.makeText(getApplicationContext(), "登陆成功!", Toast.
一,关于Volley 其实最初对于网络数据的访问,我是没想到要用框架的,使用HttpURLConnection或者HttpGet or HttpPost都可以实现。但是why? why I have to use Volley? Before Voll...
问题: 同时运行的几个线程需要共享一个数据,并且要考虑到彼此的状态和动作。 例如,当一个线程对共享的数据进行操作时,在没有完成相关操作之前,不允许其他线程打断它,否则会破坏数据的完整性。也就是说,被多个线程共享的数据在同一时刻只允许一个线程处于操作之中。
-----------------------分割线--------------------------------------------------------------------------------------------------------------------- 为了提高开发效率,整理了一些安卓中的开源框架。
一,简单分析 应用场景: 存放基本的配置; 优势: sharedPreference将数据以键值对的形式保存至XML文件中,而生成XML文件保存于data/data/程序包名(package name)/shared_prefs目录下。
一,发送广播 利用Intent来发送广播。 使用:在需要发送广播的地方创建一个Intent对象,将信息的内容和用于过滤的信息封装起来,通过以下三种方法将Intent广播出去: 1,Context.sendBroadcast 2,Context.sendOrderedBroadCast 3,Context.sendStickyBroadcast 三种方法的区别: 1,sendBroadcast和sendStickyBroadcast发送出去的Intent,对于所有满足条件的BroadcastReceiver都会执行其onReceive方法。
本地服务用于应用程序内部,可以实现应用程序自己的一些耗时任务,比如查询升级信息,网络传输,或者在一些场合需要在后台执行,比如播放音乐,并不占用应用程序比如activity所属的线程,而是单开线程后台执行,这样用户体验比较好。
一,简介 Android系统中的ContextMenu(上下文菜单)类似于PC的右键弹出菜单,当一个视图注册了上下文菜单,长按该试图对象将出现一个提供相关功能的浮动菜单。 使用: 上下文菜单可以被注册到任何视图中,最常见的是ListView,但是上下文菜单不支持图标和快捷键。
在我们做完一个Activity之后,总是要看下效果才放心,但是面对虚拟器的启动慢,反应慢的两个痛点,我们总要寻找别的方法。 1,copy生成的APK文件安装 在我们选择Run As之后,会在bin文件夹下生产一个app的apk文件,我们可以拷贝出来,在未发布到google之前,发给测试人员使用。
一,日期对话框 代码: //日期时间对话框 //获得时间相关实例,目的是为了初始化日期选择对话框弹出来的初始时间 Calendar calender=Calendar.
一,提示对话框 效果: 调用代码: new AlertDialog.
表格布局是指该容器是一个表格,放置控件时,控件的位置坐落在表格的某个位置上。 其中TableRow是配合TableLayout使用的,目的是为了让TableLayout生成多个列,否则TableLayout中就只能存在一列元素,但可以有多行。
相对布局是指利用控件之间的相对位置关系来对布局进行设置。 在容器中的控件与其他任何一个控件或者容器都有相对关系。 例如: 布局完成效果: 使用相对布局的方式主要是设置某个控件跟他周围的控件的相对位置关系:比如,它与**底部平齐,与某某控件顶部平齐,在某控件左边或者右边,在父控件中的相对位置关系。
一,水平布局(horizontal) 水平放置:容器里面存放的控件或者容器只能以一行的形式出现,放置的控件只能是该行中的某个位置,两个控件或者容器之间只有左右关系没有其他方向上的关系,当放置水平方向满屏时不会自动换行,再放置的控件将在屏幕之外存在,无法看见。
DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。 它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。