`
xbcoil
  • 浏览: 126251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SSH全注解-annotation详细配置.

    博客分类:
  • JAVA
阅读更多

 如果有点SSH框架的经验,这个很好理解.配置不难.

配置annotation目的:省去庞大的.XML配置简化配置.其实这个annotation最近才流行的.我配置了几天,愁坏了...

这里写这篇博客就是方便下大家,给大家启示:

 

首先annotation是spring2.5的新功能.所以项目用Myeclipse里添加spring支持选择spring2.5.添加Hibernate的时候也要添加annotation需要的jar包,按步骤走就可以.需要特殊加的jar包有:struts2-convention-plugin-2.1.6.jar,hibernate-commons-annotations.jar.

 

web.xml的配置:

 

<!--Spring的装载器  -->
	<listener> 
      <listener-class> 
         org.springframework.web.context.ContextLoaderListener          
      </listener-class> 
    </listener>
    <!--spring的应用上下文  -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
 
  <!-- struts2文件拦截器 -->	
    	
	<filter>  
      <filter-name>struts2</filter-name>  
      <filter-class>xx.servlet.web.MyStrutsFilterDispatcher</filter-class>  
	 <init-param>
  	 	<param-name>actionPackages</param-name>
   		<param-value>xx.bean,xx.dao,xx.quanxin.action</param-value>
       </init-param>
	</filter>  
	<filter-mapping>
	  <filter-name>struts2</filter-name>
	  <url-pattern>/*</url-pattern>
	</filter-mapping>
	

 

 

struts.xml基本没用了,所以就省掉了...先鼓掌.

applicationContext.xml就有点改变了,看源码:

 

 

<?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:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
  http://www.springframework.org/schema/aop  
  http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
  http://www.springframework.org/schema/beans  
  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-2.5.xsd
  http://www.springframework.org/schema/tx  
  http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire="byType">
		
	<context:annotation-config/>
	<context:component-scan base-package="*" />
	
	<aop:aspectj-autoproxy /> 

        <tx:annotation-driven transaction-manager="transactionManager" /> 
    
	<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"></bean>
	
	
	<bean id="propertyConfigurer"
	      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	      <property name="location">
	         <value>/WEB-INF/systeminfo.properties</value>
	      </property>
	</bean>
	
    <!-- DBCP数据库连接数据源的配置 -->
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close"> <!-- 把连接重新放到连接池里 -->
        <!-- 添加连接池属性 -->
        <property name="driverClassName" value="${DB.driverClassName}"/>
        <property name="url"  value="${DB.server}"/>
        <property name="username" value="${DB.username}"/>
        <property name="password" value="${DB.password}"/>
        <property name="initialSize" value="2" /> <!-- 初始连接数 -->
        <property name="maxActive" value="50"/> <!-- 连接池最大连接数 -->
        <property name="maxIdle" value="20"/>   <!-- 最大的可空闲的连接数 -->
        <property name="minIdle" value="10"/>    <!-- 最小的可空闲的连接数 -->
        <property name="logAbandoned" value="true" />  <!-- 超时后打印超时连接错误 -->
        <property name="removeAbandoned" value="true" />   <!-- 超时移除连接 -->
        <property name="removeAbandonedTimeout" value="300"/> <!-- 超时时间 -->
        <property name="maxWait" value="1000"/>   <!-- 最大可以等待时间 -->
        <property name="defaultAutoCommit" value="true"/>  <!-- 自动提交, -->
    </bean>
    
    <!-- 将dataSource注入到下面的sessionFactory类里 -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mappingResources">
            <list>
           		<value>xx/bean/UserInfo.hbm.xml</value>
           		<value>xx/bean/Role.hbm.xml</value>
        	</list>
        </property>
		<!--
			通配符加载方式,暂未启用 <property name="mappingLocations"> <list>
			<value>classpath:/jy/bean/*.hbm.xml</value> </list> </property>
		-->
		<property name="hibernateProperties"> <!-- 这里是Properties列表 -->
			<props>
				<prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect  </prop>
				<prop key="hibernate.show_sql">true</prop> <!-- 显示sql -->
			</props>

		</property>
	</bean>
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	
</beans>

 

 注:基本和原来的一样,红色字体是主要变化的...还有头文件也增加了点..到时候复杂就可以了.

 

 

再下面就看源码了...简单的东西马上就来了:

 

DAO层的接口类,也就是Interface没有变化,省掉了.

DAO层的impl文件有变化,看源码:

 

 

 

@Repository("dao")
public class PublicDaoImpl extends HibernateDaoSupport implements PublicDao {
	 
	@Resource(name = "sessionFactory")
    public void setSuperSessionFactory(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }
	
     public void delete(Object obj) {
	this.getHibernateTemplate().delete(obj);

     }
 

Service层接口么变化,看impl的源码:

 

 

@Service("base")
@Transactional
public class BaseServiceImple implements BaseService {
	@Resource(name="dao")
	private PublicDao publicDao;
	
	
	public PublicDao getPublicDao() {
		return publicDao;
	}


 

最后看Action里面的配置.最重要的了,看源码:

 

 


import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.ServletActionContext;
import org.springframework.stereotype.Controller;

import xx.bean.UserInfo;
import xx.service.*;
import com.opensymphony.xwork2.ActionSupport;

@Controller
@Namespace("")
@ParentPackage("default-package")
public class UserinfoAction extends ActionSupport {
       
      @Resource(name="base")
	private BaseService baseService;
 @Action(value="/new",results={@Result(name="success",location="/index.jsp")})
	
	public String newUser() {
		UserInfo xx=new UserInfo();
		xx.setUserid("111");
		xx.setPassword("111");
		xx.setSfz("12121");
		this.baseService.save(xx);
		return SUCCESS;
	}
 

自己看吧,红字是重点..不要有set和get方法....

 

然后就输入new.action.....成功...

 

没耐心讲了,写的不够详细..,呵呵...有问题mail我...

 

 

 

 

分享到:
评论
16 楼 xbcoil 2010-11-29  
smallvq123 写道
0.0 JB啊。。。猜猜我是谁~~~呵呵 顶下啊  顺便我觉得注解还不如配置,这样维护起来多麻烦。。。



WDW,还用猜....上面那位给的命令,说是注解更能要求大家写  文档.... 
15 楼 ziliang871118 2010-11-25  
大家评论的都很道地啊
14 楼 wkkyo 2010-11-25  
我还是更喜欢xml,
13 楼 zgxzowen 2010-11-24  
个人感觉没有参考价值。
12 楼 smallvq123 2010-11-22  
0.0 JB啊。。。猜猜我是谁~~~呵呵 顶下啊  顺便我觉得注解还不如配置,这样维护起来多麻烦。。。
11 楼 lancelotly 2010-11-22  
注解真的有想象的那么好?后期维护起来会死人的,与其这么硬耦合,还不如使用高配置文件来的实在,注解有它好的地方,但滥用就是灾难性。
10 楼 qinglangee 2010-11-22  
文章时间是不是出错了
9 楼 xiaoyu211940 2010-11-22  
我也是觉的配置好点能够从配置里面查看依赖关系
和在配置里面组装信息

不过2个东西做好同时兼备,能够做到做大的简化和做大的灵活性就好了
不必要追求什么极致 没什么意义
8 楼 whaosoft 2010-11-22  
感觉现在大部分地方滥用注解 感觉用在适合的地方就可以了
7 楼 lzs123cnnic 2010-11-22  
还是用配置文件方便,少写比起简单的维护我还是选择后者啊
6 楼 lishuanglin52130 2010-11-22  
貌似听我老大说,注释性能很差?
5 楼 aws 2010-11-22  
这种需要明确被注入对象的还不如用配置文件
你要知道当初配置文件出来就是为了解决配置硬编码和分散在各个类里面的问题
而这种使用注解的方式其实是重蹈覆辙罢了
4 楼 yangguo 2010-11-22  
这样还不如用配置文件。
3 楼 Javakeith 2010-11-21  
注解越来越流行了呀!
2 楼 sunchaohui_koko 2010-11-21  
struts用Convention插件,可以连注释都不需要。。。
1 楼 bhdweb 2010-11-20  
啊  哦  这样讲还不如录一个视频  。  操作性的东西  光文字是说不清的。。。

相关推荐

    ssh全注解-annotation

    根据给定的信息,本文将对“SSH全注解”这一主题进行深入解析,重点探讨如何在Struts2、Hibernate和Spring框架中运用全注解方式实现无XML配置的开发模式。 ### SSH全注解概念 SSH是Struts2、Spring和Hibernate三个...

    SSH2-Annotation.rar_annotation ssh2_ssh2_ssh2 annotation

    在这个项目中,SSH2被进一步优化,引入了注解(Annotation)的方式,使得配置过程更为简洁,提高了开发效率。下面将详细介绍这个项目的核心知识点。 1. **Spring框架**:Spring是Java应用开发的核心框架,提供依赖...

    SSH全注解环境搭建

    本文将详细介绍如何搭建一个基于全注解配置的SSH环境。 #### 二、准备工作 1. **创建Web项目并添加SSH支持**: - 使用IDE(如Eclipse或IntelliJ IDEA)新建一个Web项目。 - 在项目设置中确保选中了“Enable ...

    Annotations 所需jar包.rar

    本资源“Annotations 所需jar包.rar”显然是为了支持使用注解(Annotation)来配置SSH框架,使得代码更加简洁、可读性更强。注解是一种元数据,它提供了在源代码中嵌入信息的方式,这些信息可以被编译器或运行时环境...

    ssh整合----annotation

    本文将详细讲解使用注解方式进行SSH整合的步骤。 首先,我们需要准备一个开发环境,这里选择了Myeclipse6.5作为IDE,搭配JDK1.6和Tomcat6.0作为运行环境。SSH整合中的Struts2版本为2.1.8,Spring版本为2.5,...

    ssh(struts2.2.1+_hibernate3.6+spring3.0.5)整合配置

    在使用Hibernate时,现在推荐使用Annotation配置,而不是传统的XML配置。例如,你可以直接在实体类上使用`@Entity`、`@Table`等注解,而不是通过`AnnotationConfiguration`创建SessionFactory。 总的来说,SSH整合...

    SSH笔记-annotation配置注入关系1

    在`SSHnote_Spring_2_Annotation`压缩包文件中,你可能找到了进一步的示例和详细解释,包括如何配置Spring以启用注解处理,以及如何利用注解进行更复杂的依赖管理和配置。这些资料将帮助你更好地理解Spring 4.x中...

    SSH全注解开发

    在现代的开发环境中,注解(Annotation)的应用使得代码更加简洁、易读,SSH框架也支持全注解开发,大大简化了配置文件的工作量。本文将深入探讨SSH框架中各组件的注解使用及其背后的原理。 1. **Struts2注解** - ...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    ssh2+oracle 全注解 annotation lib包

    总的来说,这个"ssh2+oracle 全注解 annotation lib包"提供了一套完整的解决方案,让开发者能够安全地远程管理服务器,并且高效地操作Oracle数据库,同时利用Java的注解技术减少了手动配置的工作,提高了开发效率。...

    ssh注解整合

    ### SSH注解整合知识点 #### 一、概述 在软件开发领域,特别是Java Web应用开发中,SSH(Struts + Spring + Hibernate)架构是一种非常流行的轻量级开发框架组合。随着技术的发展,基于注解(Annotation)的配置...

    SSH全注解登录

    "SSH全注解登录"指的是使用SSH框架,并且利用注解(Annotation)的方式来实现登录功能。注解是一种元数据,它可以提供关于代码的额外信息,使得框架能自动配置和管理对象。例如,在Spring中,可以使用`@Autowired`...

    ssh2 Annotation注解 框架+oracle

    在"ssh2 Annotation注解 框架+oracle"的场景下,我们将深入探讨SSH2框架如何结合注解和Oracle数据库进行应用开发。 **Spring Annotation注解** Spring框架允许开发者使用注解来声明Bean、依赖注入、事务管理等。...

    SpringMVC-SSH全注解

    &lt;context:annotation-config/&gt; &lt;!-- 扫描包 --&gt; &lt;context:component-scan base-package="com.org.core"/&gt; &lt;bean id="jspViewResolver" class="org.springframework.web.servlet.view....

    基于注解Annotation的最新版SSH(Struts2.3.7+Hibernate4.1.9+Spring3.2.0)框架整合开发

    基于注解Annotation的最新版SSH(Struts2.3.7+Hibernate4.1.9+Spring3.2.0)整合开发,真正实现零配置。 最新版本Struts、Spring、Hibernate框架整合: struts-2.3.7 spring-framework-3.2.0.RELEASE hibernate-...

    ssh2全annotation配置模板

    这个“ssh2全annotation配置模板”旨在提供一个简洁且高效的整合示例,利用注解(Annotation)来减少XML配置文件的复杂性。接下来,我们将详细讨论SSH2框架中的各个组件以及它们如何通过注解进行配置。 首先,...

    Spring的Annotation配置相关讲义

    `&lt;context:annotation-config&gt;`元素会扫描容器中的所有Bean,查找并处理如`@Autowired`、`@Required`、`@PostConstruct`等注解,实现依赖注入。 `&lt;context:component-scan&gt;`元素用于指定需要扫描的包,这样Spring会...

    SPRING-FRAMEWORK-3.0.M2

    其次,Spring 3.0.0.M2引入了基于注解的配置(Annotation-based Configuration),大大简化了XML配置。例如,@Component、@Service、@Repository和@Controller等注解,可以直接在类上标注,表明类的角色,简化了配置...

Global site tag (gtag.js) - Google Analytics