指定action属于哪个包 指定的包必须是struts.xml文件中已经存在的
@Namespace(value)
命名空间,页面访问后台路径的一部分,位于项目路径后
@Action
指定action的名称,作为路径的一部分,在命名空间之后
比如,一个完整的路径为 :
http://localhost:8080/ISearch/register.do?method=register
其中http://localhost:8080/ISearch为项目路径
“/” 为命名空间 register 为action名称 .do为action后缀 (在struts.xml文件中配置),?表面后面是有参数的 method为参数名称,register是参数的值
@Results(value={@Result(name=”success”,location=”/admin/jsp/site/reader.jsp”)})
指定跳转的内容,其中value的值是一个跳转的集合,在action的方法中 返回值为String类型时,返回值即是要指定跳转的名称
Spring注解说明
@Autowired
Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean,如下:
<bean />
这样将会在项目中对标注 @Autowired 的 Bean 进行自动注入
比如使用 UserDAO 只需在类的Fields中声明
@Autowired
private UserDAO userDAO;
就可以了 不需要再初始化userDAO
@Resource(name=”sessionFactory”)
相当于配置文件中的ref=”sessionFactory”
其作用跟@Autowired是相同的 只不过@Resource的name指定的是注入的bean的name,而@Autowired是按bean的类型注入
@PostConstruct

该注解作用于方法,在bean被实例化之后即调用该方法
@Component
作用于类 即将该类定义为Spring的bean
@Repository、@Service和 @Controller是对@Component的具体化,其作用和地位是完全相同的
要使依赖注解定义的bean生效,必须在spring配置文件中声明:
<context:component-scan base-package="com.aegis.isearch.model.dao.impl,com.aegis.isearch.controller.service.impl"
annotation-config="true" />
即spring将扫描指定包下所有类 将指定了@Repository、@Service和 @Controller @Component注解的类定义为spring的bean
多个包路径之间用逗号分隔
Hibernate注解
在spring配置文件中的sessionFactory的定义中,sessionFactory的类必须使用
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean注解才能生效。
<property name="packagesToScan">
<list>
<value>com.aegis.isearch.model.beans</value>
</list>
</property>
sessionFactory的packagesToScan指定了需要扫描的包,只有在指定包下的类使用的注解才有效
@Bean
作用于类,指定该类为一个持久化的实体
@Id
作用于field,指定实体的标识
@Transient
作用于field,指定的field不被持久化
@Column
作用于field,指定该field被持久化时的一些具体属性,如nullable 是否可以为空,unique 是否唯一等,name属性指定了对应数据库中的列名,如果不设置该属性,将使用field的name作为数据库中列的名称
@ManyToOne @OneToOne @ManyToMany
指定与其他对象的外键映射关系,targetEntity属性指定了引用的对象,该对象也必须是持久化的。
@JoinColumn @JoinColumns
在外键映射中指定引用外键的列,如果不指定Hibernate将会自动分配列名