简化注解shh框架

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

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

 1 <bean id="myIndexAction" class="ssh.action.IndexAction" scope="prototype">
 2
 3     <property name="is" ref="myIndexService"></property>
 4
 5 </bean>
 6
 7
 8
 9 <bean id="myIndexService" class="ssh.service.IndexServiceImpl" scope="prototype">
10
11     <property name="id" ref="myIndexDao"></property>
12
13 </bean>
14
15
16
17 <bean id="myIndexDao" class="ssh.dao.IndexDaoImpl" scope="prototype">
18
19     <property name="sf" ref="mySessionFactory"></property>
20
21 </bean> 

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

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

1   <bean id="myIndexAction" class="ssh.action.IndexAction" scope="prototype"></bean>
2
3   <bean id="myIndexService"class="ssh.service.IndexServiceImpl" scope="prototype"></bean>
4
5   <bean id="myIndexDao" class="ssh.dao.IndexDaoImpl" scope="prototype"></bean> 

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

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

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

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4
 5 xmlns:p="http://www.springframework.org/schema/p"
 6     xmlns:aop="http://www.springframework.org/schema/aop"
 7
 8 xmlns:context="http://www.springframework.org/schema/context"
 9     xmlns:jee="http://www.springframework.org/schema/jee"
10
11 xmlns:tx="http://www.springframework.org/schema/tx"
12     xsi:schemaLocation="
13             http://www.springframework.org/schema/aop
14
15 http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
16             http://www.springframework.org/schema/beans
17
18 http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
19             http://www.springframework.org/schema/context
20
21 http://www.springframework.org/schema/context/spring-context-4.2.xsd
22             http://www.springframework.org/schema/jee
23
24 http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
25             http://www.springframework.org/schema/tx
26
27 http://www.springframework.org/schema/tx/spring-tx-4.2.xsd"
28 //<context:component-scan base—package="ssh"></context:component-scan>,通过这个节点的base-package属性可以配置Spring需要自动注入的哪个基包
29     <!-- 基于ssh这个包自动扫描其中的类 ,也会自动注入解析器-->
30     <context:component-scan base-package="ssh"></context:component-scan>
31
32     <!-- 引入外部属性文件 -->
33     <context:property-placeholder location="classpath:jdbc.properties" />
34
35     <bean id="mySessionFactory"
36         class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
37     </bean>
38
39     <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
40
41     </bean>
42
43 </beans>

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

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

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

    [email protected]注解--定义控制器(类级别上的注解)action)

  [email protected]注解--定义业务处理类(service)

  [email protected]注解--定义底层数据库处理接口(dao)

  [email protected]注解--实现注入(jdk)

  [email protected]("prototype")--//非单例


1

2

3

4

5

6

7

8

9

10

11

<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>

时间: 2024-10-11 21:49:32

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

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

为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->Maven Project--->Next(之后界面如下所示:) --->Next(点击next之后出现如下界面:选择最后一个 maven-archetype-webapp,然后点击next) --->Next(点击next之后出现如下界面,然后选择好组织号,工程号,版本号即可),最后点击Fi

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

使用注解式框架ButterKnife的时候,导入到ADT中,结果项目中注解的view无效,如点击button等无任何的反应. 然后在ButterKnife的官网查看到解决办法:http://jakewharton.github.io/butterknife/ide-eclipse.html 1.因为使用的是ADT,需要在工程的设置中的Java Compiler → Annotation Processing and check "Enable project specific settings&

注解SSM框架搭建3

在用注解代替了spring-mybatis.xml配置和springmvc配置后,剩下的就是web.xml了 web.xml的代替比较复杂. web.xml的代替 javax.servlet.ServletContainerInitializer接口: 在servlet3.0规范中,提供了一个 javax.servlet.ServletContainerInitializer接口,来帮助我们做web应用的初始化操作,例如动态注册Servelt.Filter.Listener等 servlet3.

SHH框架的搭建

建立一个Web项目,然后导入如下包 l  struts2包:在struts2-blank.war下的lib目录下,以及struts-2.3.15.1\lib下的struts和spring整合的插件包struts2-spring-plugin-2.3.15.1.jar l  hibernate包:hibernate-distribution- 3.6.10.Final\lib\,把required中的所有包都导入进去,以及jpa下的hibernate-jpa-2.0-api- 1.0.1.Fina

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

ButterKnife官网 其实ButterKnife的注解式,与xUtils的ViewUtils模块基本上差不多,只要用过xUtils,这个框架基本上就会了. 一.原理. 最近发现一个很好用的开源框架,蛮不错的,可以简化你的代码,是关于注解的.不多说直接进入使用步骤讲解. 二.步骤. 1.准备阶段,先到官网( http://jakewharton.github.io/butterknife/  )上jar包,下载下来. 2.把下载下来的jar包,放到项目的libs下,就会自动导入项目了. 3.

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

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43452969 ,本文出自:[张鸿洋的博客] 1.概述 记得很久以前,写过几篇博客,容我列举一下: Android 进阶 教你打造 Android 中的 IOC 框架 [ViewInject] (上) Android 进阶 教你打造 Android 中的 IOC 框架 [ViewInject] (下) Android 框架炼成 教你如何写组件间通信框架EventBus 大家可以关

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

自己从事java开发工作也有一年多了,自己却没有亲手搭建一个完整的框架.于是今天自己动手搭建一个,过程中遇到一些问题,倒腾了大半天终于搞定了. 现在给大家分享一下过程,自己也记录下来,以后学习参考使用. 我采用全注解的方式去搭建springMVC,spring,mybatis框架,同时自己也可以去配置xml,但是主要还是通过注解的方式来实现.参考的网上其它大神分享的方法,多多少少有些地方写的不清楚,也并不是完全通过注解去实现的. springboot可以真正说是零配置吧,后面我将给大家演示spr

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

SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.org.springframework.web.context.ContextLoaderListener在web.xml配置文件中已经配置 2.查看工程是否添加此jar包,org.springframework.web.context.ContextLoaderListener的jar包为spring

Android注解IOC框架【ViewInject】(一)

你还在为setContentView()烦恼吗? 或者说,你还在为findViewById()烦恼吗? 如果是,请往下看... IOC我们都知道,控制反转(Inversion of Control) 就是项目分层 具体理论概述个人去查资料... 之前听'前辈'提过注解,但那会儿不知道是神马,只知道听起来很神奇,因为'前辈说':不用去写什么setContentView和findViewById之类的代码了,尤其是findViewById,想必大家都是深有体会,如果一个界面有十个view,就会有十行