简化注解shh框架
找到上次我们搭建的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框架的更多相关文章
- Android开发之注解式框架ButterKnife在ADT中的设置
使用注解式框架ButterKnife的时候,导入到ADT中,结果项目中注解的view无效,如点击button等无任何的反应. 然后在ButterKnife的官网查看到解决办法:http://jakew ...
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- Android开发之注解式框架ButterKnife的使用
ButterKnife官网 其实ButterKnife的注解式,与xUtils的ViewUtils模块基本上差不多,只要用过xUtils,这个框架基本上就会了. 一.原理. 最近发现一个很好用的开源框 ...
- SHH框架的搭建
建立一个Web项目,然后导入如下包 l struts2包:在struts2-blank.war下的lib目录下,以及struts-2.3.15.1\lib下的struts和spring整合的插件包s ...
- Android 编译时注解解析框架
2.注解 说道注解,竟然还有各种分类,得,这记不住,我们从注解的作用来反推其分类,帮助大家记忆,然后举例强化大家的记忆,话说注解的作用: 1.标记一些信息,这么说可能太抽象,那么我说,你见过@Over ...
- springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来
自己从事java开发工作也有一年多了,自己却没有亲手搭建一个完整的框架.于是今天自己动手搭建一个,过程中遇到一些问题,倒腾了大半天终于搞定了. 现在给大家分享一下过程,自己也记录下来,以后学习参考使用 ...
- Android 打造编译时注解解析框架 这只是一个开始
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43452969 ,本文出自:[张鸿洋的博客] 1.概述 记得很久以前,写过几篇博客 ...
- Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架
SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...
- maven 整合shh框架的pom.xml文件配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- Java & Android Color-Background
int i = Color.parseColor("#FFFFFF"); int j = Color.rgb(255,255,255); 1.SetBackground(Drawa ...
- SqlServer阅读收集
1.根据字段名,查找相关表--INFORMATION_SCHEMA.COLUMNS SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME ...
- oracle case when
http://www.cnblogs.com/kevin2013/archive/2010/07/02/1769682.html
- Visual studio智能感知挡住了当前代码输入行
AssistX->Listboxes->Enable Visual Assist completion, suggestion and member list in .. 如果勾选了该项就 ...
- Saying that Java is nice because it works on every OS is like saying that anal sex is nice because it works on every gender.
Saying that Java is nice because it works on every OS is like saying that anal sex is nice because i ...
- linux---mysql远程访问
1.远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库. 登陆数据库.mysql -uroot -p(密码). 2.创建用户用来远程连接 GRANT ALL PRIVILEGES ...
- Sphinx的配置和使用
项目中用到了,昨天老大又给讲了讲,我感觉这玩意真是强大.想把一些功能以很小的代价做好,第三方的工具是必须要掌握的. 1. 我的开发环境在Windows上,下载了sphinx-2.2.6-release ...
- MySQL服务 - 客户端工具mysql及mysqladmin使用介绍
mysql客户端: mysql工具是MySQL官方提供的连接工具,用户可以通过mysql连接到mysqld上进行一系列的SQL操作.mysql工具有两种模式:交互模式和命令行模式.交互模式指令需要连接 ...
- Python Q&A
http://ilian.i-n-i.org/python-interview-question-and-answers/ http://www.geekinterview.com/Interview ...
- 【学】jQuery的源码思路6——增加each,animaion,ajax以及插件机制
each() 插件机制 animation ajax //each() //这里第一个参数指定将this指向每次循环到的那个元素身上,而第三个参数element其实就是this本身所以和第一个参数是一 ...