找到上次我们搭建的SSH框架

浏览一下原始的applicationContext.xml文件中的部分配置。

 <bean id="myIndexAction" class="ssh.action.IndexAction" scope="prototype">

     <property name="is" ref="myIndexService"></property>

 </bean>

 <bean id="myIndexService" class="ssh.service.IndexServiceImpl" scope="prototype">

     <property name="id" ref="myIndexDao"></property>

 </bean>

 <bean id="myIndexDao" class="ssh.dao.IndexDaoImpl" scope="prototype">

     <property name="sf" ref="mySessionFactory"></property>

 </bean> 

上面的代码中可以看出,action控制层访问的是service业务层,而service业务层则是访问dao数据层。 
每个类有什么属性要注入都显得非常明显,所以本例要做的就是把applicationContext.xml配置文件进行简化。

接着把applicationContext.xml文件中代码简化成如下代码:

   <bean id="myIndexAction" class="ssh.action.IndexAction" scope="prototype"></bean>

   <bean id="myIndexService"class="ssh.service.IndexServiceImpl" scope="prototype"></bean>

   <bean id="myIndexDao" class="ssh.dao.IndexDaoImpl" scope="prototype"></bean> 

这里只是绑定了每个bean,并没有为其注入属性。其实是用到了Spring的@Autowired和@Qualifier这两个注解。

   //属性的注解
@Autowired
@Qualifier("mySessionFactory")
private SessionFactory sf;

在Qualifier注解中我们申明其引用的是哪一个bean,Spring 便会自动为其注入这个实例,并且可以省略属性的set方法。

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd"
//<context:component-scan base—package="ssh"></context:component-scan>,通过这个节点的base-package属性可以配置Spring需要自动注入的哪个基包
<!-- 基于ssh这个包自动扫描其中的类 ,也会自动注入解析器-->
<context:component-scan base-package="ssh"></context:component-scan> <!-- 引入外部属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" /> <bean id="mySessionFactory"
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
</bean> <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> </bean> </beans>

使用spring注解来对类进行注解: @Controller action层 、  @Service service层 、  @Repository dao层;

 //action类的类注解
@Controller("myIndexAction")
@Scope("prototype")
public class IndexAction extends ActionSupport {
//属性的注解
@Autowired
//@Qualifier("myIndexService")
private IndexService is;
 //Service类的类注解
@Service("myIndexService")
@Scope("prototype")
public class IndexServiceImpl implements IndexService { //属性的注解
@Autowired
//@Qualifier("myIndexDao")
private IndexDao id;
 //dao类的类注解
@Repository("myIndexDao")
@Scope("prototype")
public class IndexDaoImpl implements IndexDao {
//属性的注解
@Autowired
//@Qualifier("mySessionFactory")
private SessionFactory sf;

  (注).了解一些我们常用的注解

    1.@Controller注解--定义控制器(类级别上的注解)action)

  2.@service注解--定义业务处理类(service)

  3.@repository注解--定义底层数据库处理接口(dao)

  4.@Resource注解--实现注入(jdk)

  5.@Scope("prototype")--//非单例

简化注解shh框架的更多相关文章

  1. Android开发之注解式框架ButterKnife在ADT中的设置

    使用注解式框架ButterKnife的时候,导入到ADT中,结果项目中注解的view无效,如点击button等无任何的反应. 然后在ButterKnife的官网查看到解决办法:http://jakew ...

  2. struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  3. Android开发之注解式框架ButterKnife的使用

    ButterKnife官网 其实ButterKnife的注解式,与xUtils的ViewUtils模块基本上差不多,只要用过xUtils,这个框架基本上就会了. 一.原理. 最近发现一个很好用的开源框 ...

  4. SHH框架的搭建

    建立一个Web项目,然后导入如下包 l  struts2包:在struts2-blank.war下的lib目录下,以及struts-2.3.15.1\lib下的struts和spring整合的插件包s ...

  5. Android 编译时注解解析框架

    2.注解 说道注解,竟然还有各种分类,得,这记不住,我们从注解的作用来反推其分类,帮助大家记忆,然后举例强化大家的记忆,话说注解的作用: 1.标记一些信息,这么说可能太抽象,那么我说,你见过@Over ...

  6. springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来

    自己从事java开发工作也有一年多了,自己却没有亲手搭建一个完整的框架.于是今天自己动手搭建一个,过程中遇到一些问题,倒腾了大半天终于搞定了. 现在给大家分享一下过程,自己也记录下来,以后学习参考使用 ...

  7. Android 打造编译时注解解析框架 这只是一个开始

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43452969 ,本文出自:[张鸿洋的博客] 1.概述 记得很久以前,写过几篇博客 ...

  8. Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

    SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...

  9. maven 整合shh框架的pom.xml文件配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

随机推荐

  1. 修复PHP在64位下序列化(serialize)的字符串在32位机器下反序列

    32机器下PHP 整型数值的范围最大不超过2147483647,而有些超出范围的数值在64序列化好的数据标识为整型,在反序列时就可能会出错. 尝试使用以下的办法可以修复此问题 function int ...

  2. SQL语句小总结

    无论是面试过程中,还是未来工作中,SQL都是一定会考到和用到的.所以,在此对之前看过的一些SQL知识点进行一下总结和记录,算是起到一个笔记本的作用.没有深入学习过SQL的和对SQL印象不太深的朋友可以 ...

  3. cookie的详细解释

    突然看到网页上中英文切换的效果,不明白怎么弄得查了查 查到了cookie 并且附有详细解释 就copy留作 以后温习 http://blog.csdn.net/xidor/article/detail ...

  4. java 中文转化为拼音

    依赖架包:pinyin4j.jar package net.jeeshop.core.util; import net.sourceforge.pinyin4j.PinyinHelper; impor ...

  5. 手写json

    json的意思是JavaScript 对象表示法 '{"0":0,"b":[3,4,5],"c":"0","d ...

  6. 【转】excel 末尾是0 恢复数据方法

    今天从数据库里面查了点数据,用plsql导出为csv数据后用excel打开后就出问题了,显示的问题,excel中会遇到一列中因为数字太长,结果变成了用科学计数法来表示,而这种损失不可逆的,及时改变其格 ...

  7. CentOS7 连网 拨号上网 PPoe网

    CentOS7  连网  拨号上网  PPoe网 在安装之前,请确定是否安装  rp-pppoe-3.5.rmp 如果没有安装,请使用 --replacepkgs  先强制安装它  (CentOS-7 ...

  8. ARM-ContexM3/4组优先级和子优先级抢占规则

    多个中断源在它们的抢占式优先级相同的情况下,子优先级不论是否相同,如果某个中断已经在服务当中,则其它中断源都不能打断它:只有抢占式优先级高的中断才可以打断其它抢占式优先级低的中断. 就是说, 组优先级 ...

  9. json对象数组按对象属性排序

    var array = [ {name: 'a', phone: 1, value: 'val_4'}, {name: 'b', phone: 5, value: 'val_3'}, {name: ' ...

  10. 转,SelectNodes + XPath

    XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法.SelectNodes 使用 XPath 来选取节点. 重要语法 S ...