spring 注解方面的疑惑

小弟最近刚刚接触ssh2整合 ,有2个问题没弄明白,希望各位高手 指教一下,小弟不胜感激
下面把我的代码先贴出来

[color=red]user.java[/color]
public class User {
private int id;
private String name;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}

[color=red]user.hbm.xml[/color]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >







[color=red]UserDao[/color]

public interface UserDao {

/**
 * 添加
 */
public void save(User user);

[color=red]UserDaoImpl[/color]

@Repository("userDao")
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {

@Resource(name = "hibernateTemplate")
public void setHibernateTemplate1(HibernateTemplate hibernateTemplate) {
    super.setHibernateTemplate(hibernateTemplate);
}

/*
 * 添加
 */
public void save(User user) {
    getHibernateTemplate().save(user);
}

[color=red]UserService[/color]

public interface UserService {
/**
* 注册用户
*/
public void save(User user);

[color=red]UserServiceImpl[/color]

@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;

/*
 * 注册用户
 */
public void save(User user) {
    if (user != null && user instanceof Object)
        userDao.save(user);
}

[color=red]struts.xml[/color]

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<package name="User" extends="struts-default">
    <action name="userAdd" class="userAddAction">
        <result name="success" >/success.jsp</result>
        <result name="input">/userAdd.jsp</result>
    </action>
</package>

[color=red]applicationContext.xml[/color]

<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <!-- spring自动扫描和管理bean -->
    <context:component-scan base-package="cn.com.jyp"/>

    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/ssh2" />
        <property name="username" value="root" />
        <property name="password" value="root" />
    </bean>

    <!-- 配置SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>cn/com/jyp/model/User.hbm.xml</value>
            </list>
        </property>
    </bean>

    <!-- 配置hibernateTemplate -->
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <!-- 配置spring提供的事务管理器 -->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 采用@Transactional注解方式使用事务  -->
    <tx:annotation-driven transaction-manager="txManager"/>

我的疑问是,第一个:在使用Spring提供的注解方式@Resource 注入依赖对象,标注在属性上,是不是可以不用提供这个属性的setter方法,如果可以不提供的话,为什么UserDaoImpl 里 这么写
@Resource private HibernateTemplate hibernateTemplate;
确出错,这个注解的实现原理是不是根据相应的属性自动提供其setter方法为其注入的啊 ?
第二个:关于事务的注解是按照上面的代码这么标在service上吧?
第三个:就是请各位帮我看看我的代码不足之处 谢谢了!

查看全部
jyp2613
jyp2613
2010/04/19 00:55
  • spring
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

0个回复