zoukankan      html  css  js  c++  java
  • spring注解 annotation

    @Resourse(name="  xxx") 意味从上下文找xxx名字一样的然后引入

    @Repository("personDao") 意味生成一个 bean 以便于让其他高业务层的去找这个  的bean

    spring.xml新加入

    xmlns:context="http://www.springframework.org/schema/context"

    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd

    spring.xml中

     1 <beans xmlns="http://www.springframework.org/schema/beans"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3     xmlns:aop="http://www.springframework.org/schema/aop"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:tx="http://www.springframework.org/schema/tx"
     6     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     7         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     8         http://www.springframework.org/schema/aop 
     9         http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    10         http://www.springframework.org/schema/context
    11            http://www.springframework.org/schema/context/spring-context-2.5.xsd
    12         http://www.springframework.org/schema/tx 
    13         http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    14     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    15         <property name="configLocation">
    16             <value>classpath:hibernate/hibernate.cfg.xml</value>
    17         </property>
    18     </bean>
    19     
    20     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    21         <property name="sessionFactory">
    22             <ref bean="sessionFactory"/>
    23         </property>
    24     </bean>
    25     
    26     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    27         <property name="sessionFactory">
    28             <ref bean="sessionFactory"/>
    29         </property>
    30     </bean>
    31     
    32     <context:component-scan base-package="cn.itcast.s2sh"></context:component-scan>
    33     
    34     <tx:annotation-driven transaction-manager="transactionManager"/>
    35     
    36 </beans>

    impl注解  (因为声明了注解,所以不能继承HibernateDaoSupport,利用组合的方式)

     1 package cn.itcast.s2sh.sh.dao.impl;
     2 
     3 import java.io.Serializable;
     4 
     5 import javax.annotation.Resource;
     6 
     7 import org.springframework.orm.hibernate3.HibernateTemplate;
     8 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
     9 import org.springframework.stereotype.Repository;
    10 
    11 import cn.itcast.s2sh.domain.sh.Person;
    12 import cn.itcast.s2sh.sh.dao.PersonDao;
    13 
    14 @Repository("personDao")                     //生成beanname
    15 public class PersonDaoImpl implements PersonDao{
    16     @Resource(name="hibernateTemplate")            //从spring.xml中引入
    17     private HibernateTemplate hibernateTemplate;   //set  get方法也就不用了,注解的形式注入了
    18     @Override
    19     public void savePerson(Person person) {
    20         // TODO Auto-generated method stub
    21         this.hibernateTemplate.save(person);
    22     }
    23 
    24     @Override
    25     public Person getPesonById(Serializable id) {
    26         // TODO Auto-generated method stub
    27         return  (Person) this.hibernateTemplate.load(Person.class, id);
    28     }
    29     
    30 }
    public class PersonDaoImpl extends HibernateSupport implements PersonDao
    {//上面代码一样 没有成员变量
    hibernateTemplate
    }
    因为
    HibernateTemple 是spring提供的类,它里面有 private HibernateTemplate hibernateTemplate;的成员变量,这个成员变量也需要 HibernateSupport提供注解,但是源代码里上面没有注解,但是又需要注入这个hibernateTemplate变量,因为继承关系继承父类的,所以 改写成组合方式,不用继承。

    serviceImpl

     1 package cn.itcast.s2sh.sh.service.impl;
     2 
     3 import java.io.Serializable;
     4 
     5 import javax.annotation.Resource;
     6 
     7 import org.springframework.stereotype.Service;
     8 import org.springframework.transaction.annotation.Transactional;
     9 
    10 import cn.itcast.s2sh.domain.sh.Person;
    11 import cn.itcast.s2sh.sh.dao.PersonDao;
    12 import cn.itcast.s2sh.sh.service.PersonService;
    13 
    14 @Service("personService")
    15 public class PersonServiceImpl implements PersonService{
    16     @Resource(name="personDao")
    17     private PersonDao personDao;
    18 
    19     @Override
    20     @Transactional(readOnly=false)              //事务
    21     public void savePerson(Person person) {
    22         // TODO Auto-generated method stub
    23         this.personDao.savePerson(person);
    24     }
    25 
    26     @Override
    27     public Person getPersonByID(Serializable id) {
    28         // TODO Auto-generated method stub
    29         Person person = this.personDao.getPesonById(id);
    30         return person;
    31     }
    32 }
  • 相关阅读:
    Node Node
    二叉排序树的实现
    Matlab Tricks(十五) —— 圆的正确画法
    Matlab Tricks(十五) —— 圆的正确画法
    Matlab Tricks(十四) —— 句柄(handle)(图形对象属性的读取与修改)
    Matlab Tricks(十四) —— 句柄(handle)(图形对象属性的读取与修改)
    (机器学习/计算机视觉/深度学习)代码
    (机器学习/计算机视觉/深度学习)代码
    论文的发表流程、会议的组织流程
    论文的发表流程、会议的组织流程
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3801643.html
Copyright © 2011-2022 走看看