Spring注解详解

来源:互联网 发布:排序算法 Python实现 编辑:程序博客网 时间:2024/06/05 09:13
1.关于注解配置DataSource数据源
    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
        <property name="username" value="scott"></property>
        <property name="password" value="13717013727"></property>
    </bean>
    <!-- 配置SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!-- Hibernate的基本属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialec</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
        <!-- 加载由注解定义的持久化类 -->
        <property name="packagesToScan" value="cn.ssh.entity"></property>
    </bean>
    <!-- 定义事务管理bean -->
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 声明式事务配置 -->
    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="find*" read-only="true"></tx:method>
            <tx:method name="search*" read-only="true"></tx:method>
            <tx:method name="query*" read-only="true"></tx:method>
            <tx:method name="add*" propagation="REQUIRED"></tx:method>
            <tx:method name="del*" propagation="REQUIRED"></tx:method>
            <tx:method name="update*" propagation="REQUIRED"></tx:method>
            <tx:method name="do*" propagation="REQUIRED"></tx:method>
            <tx:method name="*" read-only="true" propagation="REQUIRED"></tx:method>
        </tx:attributes>
    </tx:advice>
    <!-- 事务切入点的配置-->
    <aop:config>
        <!-- 定义切入点 -->
        <aop:pointcut id="pointcut" expression="execution(* cn.ssh.biz.imp.*.*(..))"></aop:pointcut>
        <!-- 定义切面 -->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"></aop:advisor>
    </aop:config>
    <!-- 扫描指定的包中的类上的注解 -->
    <context:component-scan base-package="cn.ssh.*"></context:component-scan>
    <!-- 注解驱动的管理 -->
    <tx:annotation-driven transaction-manager="txManager"/>
=============================================================================================================
@Controller         声明Action组件        @Controller("")        
@Service            声明Service组件        @Service("myMovieLister")
@Repository         声明Dao组件        @Repository("")
@Component           泛指组件, 当不好归类时.
@RequestMapping("/menu")  请求映射
@Resource          用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")
@Autowired         用于注入,(srping提供的) 默认按类型装配
@Qualifier("manDao")    用于注入,(srping提供的) 按名字装配
@Transactional(readOnly=true,propagation=Propagation.REQUIRES_NEW,rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype")   设定bean的作用域
=============================================================================================================
@ParentPackage("struts-default")
@Namespace("/")
@Controller("manAction")
public class ManAction extends ActionSupport {
    private Man man;                //当前范围的对象
    @Autowired
    @Qualifier("manBiz")
    private ManBiz manBiz;            //依赖的业务接口的对象
    //登录的Action方法
    @Action(value="loginmanAction",results={
                    @Result(name="success",location="/login_success.jsp"),
                    @Result(name="error",location="/login.jsp")})
    public String login(){}
}
=============================================================================================================
@Service("manBiz")
public class ManBizImp implements ManBiz {
    @Autowired
    @Qualifier("manDao")
    private ManDao manDao;                //依赖用户接口
    //实现用户的登录
    @Override
    @Transactional(readOnly=true,propagation=Propagation.REQUIRES_NEW)
    public boolean login(Man man) {
        // TODO Auto-generated method stub
        return manDao.login(man);
    }
}
=============================================================================================================
@Repository("manDao")
public class ManDaoImp extends HibernateDaoSupport implements ManDao {
    @Resource(name="sessionFactory")            //为依赖的SessionFactory赋值
    public void setMySessionFactory(SessionFactory sessionFactory){
        super.setSessionFactory(sessionFactory);
    }
}
0 0
原创粉丝点击