代码 翻译 <?web.xml versionn="1.0" encoding="UTF-8" sta

spring2.5 注解
我的图书馆
spring2.5 注解
spring2.5 注解
1.准备工作(1)导入common-annotations.jar(2)导入schema文件 文件名为spring-context-2.5.xsd(3)在xml的beans节点中配置&?xml version=&1.0& encoding=&UTF-8&?&&beans& &&&&&& .......&&&&&& xmlns:context=&http:/1.准备工作(1)导入common-annotations.jar(2)导入schema文件 文件名为spring-context-2.5.xsd(3)在xml的beans节点中配置&?xml version="1.0" encoding="UTF-8"?&&beans& &&&&&& .......&&&&&& xmlns:context=" "
&&&&&& xsi:schemaLocation=" &&&&&&&&&& .......&&&&&&&&&&
&&&&&&&&&&
.....&& &!--将针对注解的处理器配置好& --&& &context:annotation-config /& .....&beans&
2.在java代码中使用@Autowired或@Resource注解方式进行装配 ,这两个注解的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到名称匹配的bean才会按类型装配。
默认注解@Resource& private PersonD&bean id="personDao" class="com.hf.dao.impl.PersonDaoBean"&&/bean&首先是判断persondao是否与xml里的personDao名字相同,相同则注入,不同则判断persondao是否是com.hf.dao.impl.PersonDaoBean类型,是则注入不是则返回null.
@Resource(name="personDao")& private PersonD&bean id="personDao" class="com.hf.dao.impl.PersonDaoBean"&&/bean&判断name名称是否与bean中id相同不同则返回null
Spring自带注解方式@Autowired @Qualifier("personDao") private PersonD默认是按类型注入& 加上@Qualifier("personDao")则按名称注入
3.通过在classpath 自动扫描方式把组件纳入spring容器中管理 spring2.5为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component @Service @Controller @Repository注解的类,并将这些类纳入进spring容器中管理。它们的作用和xml文件中使用bean 节点配饰组件是一样的。(1)使用到了注解的功能(需要注解准备工作的内容)(2)在xml中加入 &context:component-scan base-package="com.hf" /&其中base-package 为需要扫描的包(包含子包)(3)@Service用于标注业务层组件@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数据访问组件 ,即DAO 组件@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
(4)业务类@Servicepublic class PersonServiceBean implements PersonService {.....}输出类AbstractApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");PersonService personService= (PersonService)cxt.getBean("personServiceBean");System.out.println(personService);cxt.close();使用注解中bean的id默认名称为类名称的首字母小写名称--------------------------------------------------自己指定名称@Service("aa") //默认作用域范围 是单例范围public class PersonServiceBean implements PersonService {.....}输出类AbstractApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");PersonService personService= (PersonService)cxt.getBean("aa");System.out.println(personService);cxt.close();--------------------------------------------------@Service("aa") @Scope("prototype")//修改bean的作用域public class PersonServiceBean implements PersonService {....}
-----------------------------------------------------------&& @PostConstruct && public void init(){& &&& System.out.println("初始化");&& } && @PreDestroy && public void destory(){&& &&& System.out.println("释放资源");&& }
4.AOP注解方式 (1)准备工作:.导入common-annotations.jar& aspectjrt.jar aspectweaver.jar cglib-nodep-2.13.jar.导入schema文件 文件名为spring-aop-2.0.xsd.在xml的beans节点中配置&?xml version="1.0" encoding="UTF-8"?&&beans& &&&&&& .......&&&&&& xmlns:aop=" "
&&&&&& xsi:schemaLocation=" &&&&&&&&&& .......&&&&&&&&&&
&&&&&&&&&&
.....&&& &!-- 配置解释处理器 为@AspectJ注解提供支持& --&& &aop:aspectj-autoproxy /&.....&beans&
(2)&bean id="myInterceptor" class="com.hf.service.impl.MyInterceptor"&&/bean&&bean id="personService" class="com.hf.service.impl.PersonServiceBean" &&/bean&将切面和被拦截的类交给spring管理(3)切面类
@Aspect //定义切面类public class MyInterceptor {&& /**&&& *& @Pointcut("execution(* com.hf.service..*.*(..))")表达式含义&&& * 第一个* 表示返回值类型为任意类型&&& * com.hf.service..& 两个点表示包路径下的子包的类也要拦截&&& * com.hf.service..*.* 子包的所有类中的所有方法 第一个*是方法第二个*是类&&& * (..)代表方法参数随意 可有可无可多可少&&& * **/
&& @Pointcut("execution (* com.hf.service.impl.PersonServiceBean.*(..))")// 定义切入点&& private void andMethod()//声明一个切入点 && {}&& /*&& @Before("andMethod()")&& public void doAccessCheck(){&&& System.out.println("前置通知");&&& && }&& */&& && @Before("andMethod() && args(name)") //带参数 只拦截符合参数类型的方法&& public void doAccessCheck(String name){&&& System.out.println("前置通知"+name);&&& && }&& /*&& @AfterReturning("andMethod()")&& public void doFaterReturning(){&&& &&& System.out.println("后置通知");&& }*/&& && @AfterReturning(pointcut="andMethod()",returning="result")//带返回值的 无返回值的方法 result为null&& public void doFaterReturning(String result){//拦截方法执行后 获取返回值对象&&& System.out.println("后置通知:"+result);&& }&& & @After("andMethod()")&& public void doAfter(){&&& System.out.println("最终通知");& && }&& /*&& @AfterThrowing("andMethod()")&& public void doAfterThrowing(){&&& &&& System.out.println("例外通知");&& }*/&& && @AfterThrowing(pointcut="andMethod()" , throwing="e") //获取例外并打印&& public void doAfterThrowing(Exception e){&& &&& System.out.println("例外通知:"+e);&& }
&& @Around("andMethod()")//环绕通知&& public Object doBasecProfiling(ProceedingJoinPoint pjp )throws Throwable{&& //if(){//判断是否与权限&&& System.out.println("进入通知");&&& Object result = pjp.proceed();&&& System.out.println("离开 通知");&& //}&&&
(4)业务类 PersonServiceBean public class PersonServiceBean implements PersonService {
&public void save(String name){&&&&& throw new RuntimeException("纯属例外");&&&&& // System.out.println("我是Save方法"+name);&&& }&public String update() {& & return "我是update方法";&}}&
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢Android文本时钟 V2 — Part1 - 文章 - 伯乐在线
& Android文本时钟 V2 — Part1
2013年1月时我发表了安卓文本时钟系列文章的。在文章的结语部分提到该App有很多可以改进的地方,所以在即将开始的新系列中,我们会对App做出一些改进,让它更绚丽一些。并且会使用到安卓最新版本中的新特性(本文发表时,安卓的最新版本号为4.4版本,版本代号Kitkat)。
首先,利用4.4版本新的线条颜色,将原本浅蓝高亮的线条颜色改为中性白。当然,我们必须还要保证不同安卓版本下的兼容性,这里就借助安卓的资源管理器在不同的安卓版本中应用对应的配色方案。
让我们先从默认的资源配置文件开始res/values/colors.xml:
; html-script: false ]
&?xml version=&1.0& encoding=&utf-8&?&
&resources&
&color name=&holo_blue_bright&&#ff00ddff&/color&
&color name=&holo_blue_light&&#ff33b5e5&/color&
&/resources&
; html-script: false ]<?xml version="1.0" encoding="utf-8"?><resources>&&&&<color name="holo_blue_bright">#ff00ddff&/color&&&&&<color name="holo_blue_light">#ff33b5e5&/color&</resources>
我们将使用holo主题作为默认的配色方案,对于不支持holo主题的老版Android系统时,上面(指定颜色)资源文件将发挥作用。
当设备使用了4.4或更高版本的系统时,为了能让原先的线条颜色变为中性白色,需要再定义一个(带有限定名的)资源文件放在res/values-v19/文件夹下。这样,当使用4.4或更高版本的系统时系统会自动使用该文件夹下的资源文件。
; html-script: false ]
&resources&
&color name=&holo_blue_bright&&#CDFFFFFF&/color&
&color name=&holo_blue_light&&#ABFFFFFF&/color&
&/resources&
; html-script: false ]<resources>&&&&<color name="holo_blue_bright">#CDFFFFFF&/color&&&&&<color name="holo_blue_light">#ABFFFFFF&/color&</resources>
资源文件中资源的ID可能会有一点误导的嫌疑,因为该ID对应的颜色已经不再是蓝色。但为了保持代码中引用资源部分的一致性,我们只是将该ID对应的颜色改为“白色”。
为了让上面的资源文件发挥作用,需要对样式资源文件做出一些修改,将安卓系统预置颜色定义改为使用本地自定义的颜色。例如:
; html-script: false ]
&style name=&minutesTextDaydream& parent=&hoursTextDaydream&&
&item name=&android:textColor&&@android:color/holo_blue_light&/item&
&item name=&android:textStyle&&normal&/item&
; html-script: false ]<style name="minutesTextDaydream" parent="hoursTextDaydream">&&&&<item name="android:textColor">@android:color/holo_blue_light</item>&&&&<item name="android:textStyle">normal</item></style>
; html-script: false ]
&style name=&minutesTextDaydream& parent=&hoursTextDaydream&&
&item name=&android:textColor&&@color/holo_blue_light&/item&
&item name=&android:textStyle&&normal&/item&
; html-script: false ]<style name="minutesTextDaydream" parent="hoursTextDaydream">&&&&<item name="android:textColor">@color/holo_blue_light</item>&&&&<item name="android:textStyle">normal</item></style>
(注意:这里将原资源文件的@android:color/holo_blue_light改为@color/holo_blue_light)
如果在4.4版本的设备上运行,我们会看到使用新配色方案后的效果:
修改配色方案并没有到此为止,还有一个容易被忽视的地方也需要修改。在res/xml/appwidget_info.xml资源文件中,会定义该小部件在选择列表时的预览图片,这些图片目前还在使用老的配色方案。当设备使用4.4版本时,我们希望预览图也能使用新的配色方案。
只需将进行替换的图片存放到适当的(带限定名的)文件夹中,剩下的事情交给资源文件管理器就可以了。
我们已经有名为widget.png文件,分别存放在res/drawable-mdpi、res/drawable-hdpi和res/drawable-xhdpi文件夹下。此外,还需要提供4.4版本配色方案的同名资源文件,并将其放入带版本号和限定名的各个文件夹中:res/drawable-mdpi-v19、res/drawable-hdpi-v19和res/drawable-xhdpi-v19。当App运行时,系统会根据当前设备的版本和屏幕分辨率自动选择相应的文件夹下的资源。
再次运行App,在小部件选择列表中可以看到新的配色方案已经启用:
在该系列的下一篇文章中,我们会继续给App添加一些动画效果。
本文完整源代码可以在找到,文本时钟App可以从市场下载。与文章改进对应的2.00版本将在近期发布到市场。未来几周内,文本时钟App还将做更多的微小升级并提供更加丰富的功能。
关于作者:
可能感兴趣的话题
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2018 伯乐在线tomcat数据源配置详解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
tomcat数据源配置详解
&&tomcat数据源配置详解
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩11页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢在linearlayout添加按钮时,按钮不可见我想显示一个表格,然后在那个表格下面的表格布局的中间显示按钮。然后把它们放在linear布局中,但是不能显示。如何解决这个问题呢?下面是xml布局文件:
android对话框的根视图android中的对话框,布局文件:&?xmlversion=&&1.0&&encoding=&&utf-8&&?&&ListViewxmlns:andr
Android布局中按钮显示的问题我在应用程序中设置这样一个布局:顶端一个按钮,第二个按钮在底端,第三个占整个中间的空间。运用的下面的代码,但是不显示第二个按钮。如何实现布局设计的结果呢?&?x
Android如何实现整个布局中的一个layout在上下滑动时不动如图,蓝色部分是个LinearLayout,如何实现在下边的listview上下滑动时它一直在屏幕顶端......求大神指导1、蓝色布
android问题,响应调整布局尺寸在android使用了一个AdMob使图,没有高宽设置,等到显示的时候就溢出。有没有什么方法能得到这个通知?我好能调整布局尺寸。要重写onLayout的,Viewv
edittext放在button之后报异常代码报出异常:&LinearLayoutxmlns:android=&&http://schemas.android.com/apk/res/andro
当按钮上的文本是两行的时候,按钮的位置改变了下面简单的布局:&?xmlversion=&&1.0&&encoding=&&utf-8&&?&&LinearLayoutxmlns:an
按钮形状不能改变风格我想把按钮的形状改变成为圆边角,但是当我在styles.xml中定义时,还是不能运行。&?xmlversion=&&1.0&&encoding=&&utf-8&&?&&
android怎么实现用户的登录注册android怎么取出SQLite中用户注册存入的数据,然后进行用户登录验证最主要是后台支持,post请求#*#网站用户登录注册实现PHP实现用户登录和注册的功能-
以前开发APP的时候,一直比较老土,就是Eclipse+手机调试。其实也一直想换成AS+Genymotion,感受下google力推的IDE,现在离职了,终于有机会重配开发环境了。
其实这个过程也是蛮无语的。
关于androidlayout_weight属性的详细解析 效果一 效果二 图3的布局代码 图4的布局代码 效果三 图7代码 图8代码 效果四 效果五 版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net
关于eclipce启动加载SDK失败的问题如图,刚刚启动的eclipce,系统显示找不到d盘devices的声明,我的SDK是放在D盘的根目录的android_sdk_window目录下的,请各位大神
怎样把多表查询的内容绑定到listview定义一个变量,将多表查询的结果添加到变量,再把变量里多表查询的结果绑定到listview控件,下面是代码TabelDataContextdc=newTabel
其他信息:输入字符串的格式不正确。求解决!!“System.FormatException”类型的第一次机会异常在mscorlib.dll中发生其他信息:输入字符串的格式不正确。stringscore
C#上传excel文档,设定好固定的格式内容,将内容字段插入数据库中,怎么实现,例如表头楼号、单元号、房间号。上传exce表并将对应的字段插入已经设定好的3个表中,例如tb_building、tb_u
为什么在PROTEL99SE中自动布局后元件之间没有蓝线显示
帐子我在别外发的,因此,我就贴个地址了.大家见谅了.http://www.lotusfans.com/forum/showthread.php?t=54661###nobodynobody....##
有一个ASCX控件,用于显示新闻的详细内容阅读新闻的时候,让父页面的标题和新闻的标题一致在ASCX控件中,引用了一个ASP标签&asp:Labelclass=&Head&id=&lblTitle
请问谁有winform开发的应用程序实例或教程也行,最好是源码,VS2005+C#,Access/sqlserver###安装好MSDN后,帮助中有一个&如何&的选择,里面有各种各样的教程}

我要回帖

更多关于 pom.xml java version 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信