[SSH_注解]常用说明

来源:互联网 发布:javaagent java 编辑:程序博客网 时间:2024/06/11 04:39

1. Struts2常用注解

  • 参考文档
    • 参考文档1:Struts2 基于注解方式Action配置
    • 参考文档2★:struts2注解
  • 添加jar包:struts-2.1.8.1\lib\struts2-convention-plugin-2.1.8.1.jar
    1. @ParentPackage:定父包
    2. @Namespace:指定命名空间
    3. @Results:一组结果的数组
    4. @Result(name="success",location="/msg.jsp"): 一个结果的映射(注意没有s
    5. @Action(value="login"):指定某个请求处理方法的请求URL。注意,它不能添加在Action类上,要添加到方法上。
    6. @ExceptionMappings :一级声明异常的数组
    7. @ExceptionMapping: 映射一个声明异常
  • 自定义注解拦截器权限控制
    • 参考文档:struts2之注解权限控制

2. Hibernate常用注解

  • 参考文档:Hibernate Annotations
  • hibernate示例注解
    @Entity:声明实体bean,每一个持久化POJO类都是一个实体bean,这可以通过在类的定义中使用@Entity注解来进行声明:
    @Id:注解则声明了该实体bean的标识属性,对应相应表使用id列作为主键列
    @Table:是类一级的注解, 通过@Table注解可以为实体bean映射指定表(table),目录(catalog)和schema的名字. 如果没有定义@Table,那么系统自动使用默认值:实体的短类名(不附带包名).
    @Transient:实体bean中所有的非static非transient的属性都可以被持久化, 除非你将其注解为@Transient,所有没有定义注解的属性等价于在其上面添加了@Basic注解.
    @GeneratedValue:定义该标识符的生成策略
    AUTO - 可以是identity column类型,或者sequence类型或者table类型,取决于不同的底层数据库.
    TABLE - 使用表保存id值
    IDENTITY - identity column
    SEQUENCE - sequence
    @OneToOne注解可以建立实体bean之间的一对一的关联.
    @ManyToOne注解来定义多对一关联

…… 更多内容请参见参考文档

3. spring常用注解

  • ★★参考文档:Spring常用注解
    某个类上添加@Component/@Repository/@Service/@Controller就是将这个对象作为Bean注册进Spring容器。也可以在中指定多个包,如:
<context:component-scan base-package="cn.gacl.dao.impl,cn.gacl.service.impl,cn.gacl.action"/>
  • 示例注解

    1. @Component:所有受Spring 管理组件的通用形式,不推荐使用
    2. @Controller:对应表现层的Bean,也就是Action
      使用@Controller注解标识UserAction之后,就表示要把UserAction交给Spring容器管理,在Spring容器中会存在一个名字为”userAction”的action,这个名字是根据UserAction类名来取的。注意:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value【@Controller(value=”UserAction”)】或者【@Controller(“UserAction”)】,则使用value作为bean的名字。
    3. @Scope("prototype"):表示将Action的范围声明为原型。可以利用容器的scope=”prototype”来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope 是单例模式(scope=”singleton”),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope=”prototype” 可以保证当有请求的时候都创建一个Action对象
    4. @Service:对应的是业务层Bean
    5. @Repository:对应数据访问层Bean
  • 补充:理解Spring中的”控制反转”
    如,在UserAction中要用到UserServiceImpl中的方法,最初的方法是在UserAction中通过UserService userService = new UserServiceImpl;需要时就new出来,控制权在自己手里,但是使用spring后,UserAction就不用主动去创建UserServiceImpl的实例了,创建UserServiceImpl实例已经交给Spring来做了,Spring把创建好的UserServiceImpl实例给UserAction,UserAction拿到就可以直接用了。UserAction由原来的主动创建UserServiceImpl实例后就可以马上使用,变成了被动等待由Spring创建好UserServiceImpl实例之后再注入给UserAction,UserAction才能够使用。这说明UserAction对UserServiceImpl类的”控制权”已经被“反转”了
1 0
原创粉丝点击