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);
}
}
<!-- 配置数据源 -->
<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
- Spring注解详解
- spring的注解详解
- Spring Annotation(注解) 详解
- Spring注解详解
- Spring Annotation(注解) 详解
- spring注解详解
- spring 注解模式 详解
- Spring注解_详解
- Spring注解详解
- Spring注解_详解
- Spring注解详解
- spring注解配置详解
- Spring注解详解
- Spring注解详解
- Spring注解详解
- Spring基于注解详解
- Spring注解详解
- Spring注解详解
- source insight打开项目时报错
- Spring学习笔记-基础知识
- 统计目录大小和时间删除早期的文件
- POJ1837 Balance(动态规划)
- C++内存泄露检查的5个方法
- Spring注解详解
- Android多线程分析之三:Handler,Looper的实现
- UML类图几种关系总结
- CentOS 6.6安装Qt5.4
- *p++的问题
- Struts2学习笔记-基础知识
- 动态计算UITableViewCell高度详解
- socket阻塞与非阻塞,同步与异步、I/O模型(c语言,java可以借鉴)
- Struts2注解详解