Struts2注解
@Action(value="login",results={ @Result(name="login",type="redirectAction",params={"actionName","index","namespace","/","code","1001"}), @Result(name="success",type="redirectAction",params={"actionName","home","namespace","/"})} ) public String login() { Map<String, Object> session = ActionContext.getContext().getSession(); User user1 = us.findByUser(user); if (user1!=null) { session.put("user", user1); return "success"; }else { code = "1001"; return "error"; } }
hibernate注解
导入hibernate-entitymanager-4.2.0.Final.jar包
@Entity @Table(name="t_user") @Cache(usage=CacheConcurrencyStrategy.READ_WRITE) public class User { private int id; private String username; private String password; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) public int getId() { return id; } //名字相同不用写 @Column(name="username") public String getUsername() { return username; }
一对多和多对一 User.java @OneToMany(mappedBy="user") public Set<Address> getAddressSet() { return addressSet; } Address.java @ManyToOne @JoinColumn(name="userid") public User getUser() { return user; }
mappedBy="user"→代表放弃关系维护;
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z错误解决方法:
打开javaee.jar: D:myeclipseCommonpluginscom.genuitec.eclipse.j2eedt.core_10.5.0.me201207171805datalibrarysetEE_5javaee.jar;
找到persistence文件,删除
多对多 Student.java @ManyToMany(mappedBy="students") public Set<Teacher> getTeachers() { return teachers; } Teacher.java @ManyToMany @JoinTable(name="t_student_teacher", joinColumns=@JoinColumn(name="studentid"), inverseJoinColumns=@JoinColumn(name="teacherid")) @orderBy("id desc") public Set<Student> getStudents() { return students; }
uuid生成id @Id @GenericGenerator(name="myuuid",strategy="uuid") @GeneratedValue(generator="myuuid") public String getId() { return id; }
一对一 User.java @OneToOne @PrimaryKeyJoinColumn public Card getCard() { return card; } Card.java @Id @GeneratedValue(generator="pkGenerator") @GenericGenerator(name = "pkGenerator",strategy = "foreign",parameters={@Parameter(name = "property", value = "user")}) public int getId() { return id; } @OneToOne(mappedBy="card") @PrimaryKeyJoinColumn public User getUser() { return user; }
排除不进行持久化操作的属性 @Transient public int getAge() { return age; }
Spring annotation
Bean的注解
@Component
@Service
@Repository
或者JSR 330 用 @Named
@Repository @Scope("prototype") @Lazy(true) public class MysqlDao implements IUDao{ }
IOC Annotation
@Autowired(spring) 先byname,没找到就byType 自动注入
@Inject(JSR 330)
@Resource(JSR 250)@Resource 默认按 byName 自动注入罢
//required=false有就注入,没有接不注入,inject,resource没有这属性 //不用写set方法了 @Autowired(required=false) private IUDao mysqlDao;
AOP Annotation
applicationContext.xml <!-- AOP注解 --> <aop:aspectj-autoproxy/>
@Controller @org.aspectj.lang.annotation.Aspect public class Aspect { @Pointcut("execution(* dao..*.*(..))") public void pointcut() { } @Before("pointcut()") public void before() { System.out.println("前置通知》》》"); } @AfterReturning(value="pointcut()",returning="val") public void afterreturn(Object val) { System.out.println("后置通知" +val); } @AfterThrowing(value="pointcut()",throwing="ex") public void exception(Exception ex) { System.out.println("异常通知"+ ex.getClass().getName()); } @After("pointcut()") public void after() { System.out.println("最终通知"); } }