`

全注解简单配置

阅读更多
一、Struts零配置: 需要struts2-convention-plugin-2.2.1.jar

1.1. struts2.properties: 配置convention插件参数
/**
 * locators.basePackage -- 扫描包根目录
 * locators -- 包名关键字
 * path -- 结果返回jsp目录 "/jsp/"等于"/webroot/jsp/"
 */
struts.convention.package.locators.basePackage=com.test.web
struts.convention.package.locators=action
struts.convention.result.path=/jsp/


1.2. struts.xml配置拦截器 package包继承convention-default
<package name="crud-default" extends="convention-default,json-default">



二、Spring注解\JPA注解\Hibernate注解

2.1. Spring*.xml中配置注解(组件扫描、hibernate sessionfactory注解、事务注解)

<!-- Spring注解 扫描 -->
	<context:component-scan base-package="com.test"/>
	

	<!-- 配置sessionfactory -  
		---注意引用类class: AnnotationSessionFactoryBean;
		---注意扫描属性property: packagesToScan -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
		lazy-init="true">
		<property name="dataSource" ref="testmysql"></property>
		<property name="namingStrategy">
			<bean class="org.hibernate.cfg.ImprovedNamingStrategy"></bean>
		</property>
		<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />

		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
				<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
				<prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>
				<prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>
				<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
			</props>
		</property>
		<property name="packagesToScan" value="com.test.pojo" />
		<property name="eventListeners">
			<map>
				<entry key="save-update">
					<list>
						<bean class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener" />
					</list>
				</entry>
			</map>
		</property>
	</bean>



	<!-- Transaction事务管理配置   -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager"
		lazy-init="default">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<!-- 声明式 事务	
		proxy-target-class=true 使用cglib动态代理不需要继承接口(默认jdk动态代理)
	-->
	<tx:annotation-driven transaction-manager="transactionManager"
		proxy-target-class="true" />


三、注解使用
3.1. Spring注解使用
  • DAO -- @Repository
  • Service - @Service
  • Action -- @Controller

3.2. JPA(javax.persistence api)使用
  • Pojo -- @Entity、@Table...

----User.java
package com.test.pojo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

/**
 * User entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "user", catalog = "test")
public class User implements java.io.Serializable {

	// Fields

	/**
	 * 
	 */
	private static final long serialVersionUID = 1780768557807417443L;
	
	// Property accessors
	@GenericGenerator(name = "generator", strategy = "increment")
	@Id
	@GeneratedValue(generator = "generator")
	@Column(name = "id", unique = true, nullable = false)
	private Integer id;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "roleid", nullable = false)
	private Role role;
	
	@Column(name = "name", length = 30)
	private String name;
	
	@Column(name = "sex", length = 1)
	private Character sex;
	
	@Column(name = "enable")
	private boolean enable;

	// Constructors

	

	/** default constructor */
	public User() {
	}
	
	/** minimal constructor */
	public User(Integer id) {
		this.id = id;
	}
/** 属性get/set略 */
	
	

}

----Role.java
package com.test.pojo;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

/**
 * Role entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "role", catalog = "test")
public class Role implements java.io.Serializable {

	// Fields

	/**
	 * 
	 */
	private static final long serialVersionUID = 6747382540556815448L;
	
	@GenericGenerator(name = "generator", strategy = "increment")
	@Id
	@GeneratedValue(generator = "generator")
	@Column(name = "id", unique = true, nullable = false)
	private Integer id;
	
	@Column(name = "name", length = 30)
	private String name;
	
	@Column(name = "enbale")
	private boolean enable;
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "role")
	private Set<User> users = new HashSet<User>(0);

        /**
	 * get/set略
	 */
	

}
分享到:
评论

相关推荐

    SSH整合 全注解零配置

    SSH框架整合,全jpa注解真正的零配置。 struts2.3.8 spring3.2 hibernate4.1.9. 带有分页,全局异常,权限拦截器,session过滤等功能。 内有jar包。导入开发工具后部署既可跑起来。已做了简单的数据库操作功能。供...

    基于全注解形式配置的简单的ssh项目(maven项目)

    本项目提供了一个使用全注解配置的SSH基础架构,适合初学者学习SSH框架的整合以及注解配置的应用。通过这个项目,开发者可以深入理解各框架如何协同工作,同时掌握Maven的项目管理和依赖管理,提升Java Web开发技能...

    使用注解方式配置的spring_mvc_3.0

    - `RequiredAnnotationBeanPostProcessor`:检查被`@Required`注解标记的属性是否已设置。 #### 实例解析 在使用注解配置之前,我们通常需要在Spring容器中定义多个类作为Bean,并手动配置它们之间的依赖关系。...

    ssm纯注解配置例子.rar

    这个"ssm纯注解配置例子.rar"文件显然包含了关于如何在项目中使用SSM框架进行纯注解配置的示例代码。下面将详细阐述SSM框架中的注解配置及其相关知识点。 首先,Spring框架提供了丰富的注解来简化配置,如`@...

    springmvc注解简单实例

    在这个"springmvc注解简单实例"中,我们将深入探讨Spring MVC中的一些关键注解,以及它们在DAO层、Service层和Controller层中的应用。让我们逐一解析这些层面的注解使用。 首先,我们来到**DAO层**。在Spring MVC中...

    Spring+DWR 全注解版

    标题 "Spring+DWR 全注解版" 暗示了这个压缩包包含了一个使用Spring框架和Direct Web Remoting (DWR) 技术的示例应用,且该应用主要依赖注解来配置和管理组件。DWR是一种在Web应用程序中实现AJAX功能的开源库,它...

    spring famework 基于注解配置示例

    例如,我们可以定义一个简单的服务类,并用`@Component`注解标记: ```java @Component public class MyService { // ... } ``` 2. `@Autowired`:用于自动装配bean的依赖。当Spring扫描到这个注解时,它会...

    Dwr3+Spring3 全注解 annotation 方式

    3. **配置DWR**:在`dwr.xml`配置文件中,可以使用`&lt;create&gt;`标签手动配置可远程访问的Java类,但在全注解方式下,这部分配置可以省略,因为Spring会自动处理。 4. **注解Java类**:在需要暴露给DWR的Java类上使用`...

    Spring4.0与mybatis3.2整合全注解实现

    在本文中,我们将深入探讨如何将Spring 4.0与MyBatis 3.2进行整合,特别是通过全注解的方式实现这一过程。Spring MVC是一个强大的MVC框架,而MyBatis是一个轻量级的持久层框架,两者结合可以提供高效、灵活的数据...

    ssh环境搭建+注解配置

    例如,Spring的`@Component`、`@Service`、`@Repository`和`@Controller`注解用于定义不同类型的bean,Struts2的`@Action`、`@Results`和`@Namespace`注解用于动作映射和结果设置,而Hibernate的注解则用于数据库...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解,涉及的是JavaEE开发中常见的SSH框架(Struts2、Spring、Hibernate)的整合,尤其强调了注解在开发中的应用,旨在简化配置,提高开发效率。SSH框架的组合在...

    struts2.3.4.1注解零配置

    在这个"struts2.3.4.1注解零配置"的例子中,我们将深入探讨如何利用Struts2的注解来构建一个简单的登录系统。 首先,了解Struts2的核心概念是必要的。Struts2是一个基于MVC(Model-View-Controller)设计模式的框架...

    spring注解 -----最简单的注解与自动装配例子

    在Spring框架中,注解是实现依赖注入(Dependency Injection,DI)的一种重要方式,极大地简化了配置文件,提高了代码的可读性和可维护性。本篇文章将深入探讨Spring中的注解,以及如何通过注解进行自动装配。 首先...

    hibernate注解配置

    ### Hibernate注解配置详解 #### 一、概述 Hibernate 是一款强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互过程。在使用Hibernate的过程中,开发者可以通过注解来实现对象与数据库表之间...

    Mybatis基于注解实现多表查询功能

    3. 使用One和Many注解:在配置多表查询时,我们可以使用One和Many注解来配置一对一和一对多的关系。例如,在Account实体类中,我们可以使用@Result注解来配置用户查询的方式。 4. 实现多表查询:最后,我们可以使用...

    MyBatis基于注解简单案例

    通过这个简单的MyBatis注解案例,我们可以了解到如何利用MyBatis进行基本的数据库操作,包括选择性地使用注解替代XML配置,以及如何在Spring框架下集成MyBatis。在实际项目中,还可以结合MyBatis的其他特性,如结果...

    采用struts2,spring3,hibernate的全注解方式实现的demo

    - `spring-context.xml`:Spring的配置文件,可能包含了扫描注解类的设置和数据源配置。 - `persistence.xml`:Hibernate的JPA配置文件,用于定义实体管理和数据源。 - 各个注解过的Java类,如User、UserService、...

    eclipse+SSH全注解标签实现登录

    本教程将详细讲解如何利用Eclipse和SSH框架,通过全注解的方式实现一个简单的登录功能,无需XML配置。 首先,我们需要了解SSH框架的各自职责: 1. **Struts2**:作为MVC(Model-View-Controller)框架,负责处理...

    基于注解的struts2的简单工程

    在这个基于注解的Struts2简单工程中,我们将深入探讨如何使用注解来配置和控制应用程序的行为,而不是传统的XML配置文件。 在传统的Struts2配置中,我们通常会在`struts.xml`文件中定义Action类、结果类型和结果...

    Struts2注解配置教程

    此外,也可以给 `&lt;result&gt;`, `&lt;interceptor-ref&gt;` 等添加 `&lt;param&gt;` 参数,例如使用@Result注解配置返回类型为json,并设置相关的参数: ```java @Result(type="json", name="jsonr", params={"root","citys"}) ```...

Global site tag (gtag.js) - Google Analytics