Annotation
早期接触的
@Override重写
@Deprecated过时
在过滤器中接触的
@Before方法执行前执行
@After方法执行后执行
<context:component-scan base-package="com.study.bean"/>这个扫描的就是下面注解
用注解创建对象,扫描以下的几个注解
@Component(组件:下面三种都是组件一种具体化的形式)
@Service(服务层)加在service的实现上
@Controller(控制层)加在controller上面
@Repository(数据库访问层)加在dao层的实现
注入好像是spring的,就不用new对象了
@Resource()里面写name="A"用名字来找,写type="B.class"用类型来找==下面两个注解
@Autowired这个注解里面不能写参数按照类型来查找,如果内存中有多个相同类型的对象,那么报错
@Qualifier("blackBox")当有好几个的时候就要在这里表示具体的名字了
spring AOP中接触的
@Aspect//1、表示该类是增强类
public class StudentUtils {
//2、配置切入点,括号内是表达式
@Pointcut("execution(* com.hemi.bean.Student.study(..))")
public void pointcut(){
//3、前置增强,括号内写切入点的名称,即上面的方法名
@Before("pointcut()")
public void high(Joinpoint jp){
System.out.println("玩会手机。。。。");
jp.getArgs();//获取参数
}
//4、
@Around("pointcut()")
public void show(ProceddingJoinpointcut pjp){//ProceddingJoinpointcut只有在环绕增强时可以用
pjp.getSignature().getDeclaringType();//获取方法名
}
}
//JoinPoint:除了环绕增强之外的其他增强使用
public void log(Joinpoint jp){
}
在controller返回的
@Controller
@RequestMapping( value = "list")
@ResponseBody //返回的对象封装成json
@ModelAttribute("user")
@JsonFormat。。。。
在字段上加的
@TableName
@TableId
@TableField
@transient忽略数据库中没有的字段
@TableField(exist = false) 就是表里没这个字段 不知道和上面有什么区别
@DateTimeFormat(pattern="yyyy年MM月dd日")//写了该注解,默认的yyyy/MM/dd hh:mm:ss的格式就无法使用了
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")Jason的日期格式
hibernate接触到的
@Entity//表示该类为持久类
@Table(name="user")//对应数据库的表名
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)//主键生成IDENITITY与native类似
@Column(name="user_name")//设置属性与字段名的映射关系
@ManyToMany(cascade = CascadeType.ALL,fetch=FetchType.LAZY)
@ManyToOne(cascade=CascadeType.ALL) //casacde为级联
@OneToMany(cascade=CascadeType.ALL) //casacde为级联
@JoinColumn(name="uid") //外键
@JoinTable(
name = "role_user",
joinColumns = {@JoinColumn(name = "uid")},//本表中的主键
inverseJoinColumns = {@JoinColumn(name = "rid")}//另一张表的主键
)
@Scope("prototype")多例。。。不是很懂