SSH开发中的注解使用

在SSH中使用注解可以减少配置XML文件,毕竟随着项目规模的扩大,配置bean将把Spring的配置文件(applicationContext.xml)变得很混乱

在Spring的配置文件中开启注解扫描

<context:component-scan base-package="cn.lynu"></context:component-scan>

注意这个base-package就是指定了要扫描的包范围,这里可以指定一个共有的包名以扫描所有类的注解

这里给一个Spring配置文件:

现在只需要配置C3P0和hibernate并开启注解扫描就可以了

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">    

<!-- 配置c3p0连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
      <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/easyui"></property>
      <property name="user" value="root"></property>
      <property name="password" value="root"></property>
    </bean>

    <!-- 配置hibernate -->
        <!-- 1.先配置sessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
      <property name="dataSource" ref="dataSource"></property>
      <property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
    </bean>

    <!-- 2.开启事务管理器,用注解方式使用事务 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 开启事务,记得在需要开启事务的类上 使用@Transaction-->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!-- 开启注解扫描 -->
    <context:component-scan base-package="cn.lynu"></context:component-scan>

</beans>

开始使用注解

1.先从Dao开始,在Dao类上使用@Repository注解声明自己

然后是很关键的一步,我使用了HibernateDaoSupport,需要在Dao中注入sessionFactory,而Dao中就需要调用HibernateDaoSupport中的sessionFactory

    @Resource(name="sessionFactory")
    public void setSF(SessionFactory sf){
        super.setSessionFactory(sf);
    }

setSF这个名字不是固定的,只要是以set打头就行了

2.在Service类上使用注解@Service

然后使用@Resource注入Dao

    private AdminDao adminDao;
    @Resource(name="adminDao")
    public void setAdminDao(AdminDao adminDao) {
        this.adminDao = adminDao;
    }

3.在Action类上面使用@Controller指明自己是控制器,使用@Scope("prototype")指明为多实例,action都是多实例的

同样还要使用@Resource注入Service

    private AdminService adminService;
    @Resource(name="adminService")
    public void setAdminService(AdminService adminService) {
        this.adminService = adminService;
    }
时间: 2024-10-10 09:51:15

SSH开发中的注解使用的相关文章

spring注解开发中常用注解以及简单配置

一.spring注解开发中常用注解以及简单配置 1.为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向spring容器中注入bean对象, 然而,通过注解编程可以缩短我们开发的时间,简化程序员的代码编写. 2.如何开启注解开发:最常用的方法是使用<mvc:annotation-driven/>来开启注解编程(用一个标签配置了spring注解编程的映射器和适配器,同时配置了许多的参数) 3.如何将有注解的be

JAVA注解在SSH开发中的简单应用

在系统开发过程中,出现错误在所难免.虽然系统出错时控制台也会报错,但是因为系统控制台输出太多,往往不能快速定位出现错误的功能点及原因.在此通过使用注解,结合spring的AOP,来制作一个错误输出拦截器. 首先写一个注解类Catcher: @Target({ ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface Catcher {     String 

SSH框架中使用注解和xml配置的区别

注解是一般是你开发框架,jar包时候给别人提供的,如ssh,使用者在框架里面用了注解,框架的源码会通过反射去分析注解,形成配置信息,从而替代配置文件. 而从目前的形式看,注解确实是一大趋势,因为其方便快捷简单,将来可能会统一替代配置文件. 不过目前注解还有两处劣势:1.写在java代码里面,配置信息不集中,不方便更改2.注解毕竟是通过反射解析,有些复杂配置的实现不如通过配置文件容易实现

SSH开发中解决mysql数据库的乱码问题

(1)第一点要保证 就是创建数据库的时候 使用的编码方式 和连接数据库的 编码格式是一样的! (2)在web.xml文件中配置过滤器(由spring提供的过滤器) <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param

廖师兄springboot微信点餐开发中相关注解使用解释

package com.imooc.dataobject; import lombok.Data;import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import java.util.Date; /** * 类目 * Created by 廖师兄 * 20

SSH开发 URL中文参数不显示结果

在SSH开发中,使用中文参数类似下面的情况服务器端显示会乱码. http://localhost:8080/resource/getdata?classify=中文 解决办法: 在tomcat->conf->server.xml中添加URIEncoding="UTF-8": <Connector port="8080" protocol="HTTP/1.1"                 connectionTimeout=&

软件开发中部分代码的注解

初次接触软件开发,先是阅读别人的代码.学习别人的一些经验!下面是遇到的一些代码及注解! @ParentPackage("basePackage")    // 默认继承struts.xml文件的<package name="basePackage" extends="struts-default"> /* * 函数功能:将对象转换成Json字符串,并响应回前台. * 转换的原因:页面使用的数据格式为JSON * 一般我们在服务端中使用

【详细】总结JavaWeb开发中SSH框架开发问题(用心总结,不容错过)

在做JavaWeb的SSH框架开发的时候,遇到过很多的细节问题,这里大概记录下 我使用的IDE是Eclipse(老版本)三大框架:Spring4.Struts2.Hibernate5 1.web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&qu

SSH项目开发中,将jsp页面放在WEB-INF的原因解析

 在一些安全型要求比较高的项目开发中,我们经常看到jsp页面都被放在WEB-INF下面了.这是出于对安全性的考虑, 是为了代码的安全.这样实现起来虽然麻烦了点,而且页面跳转很不方便.但是整个项目的安全性就提高上去了!所 以还是建议在一些安全性要求比较高的项目里使用这种做法! 这是我写的一个例子,我就是将所有的JSP页面都放在WEB-INF下面,然后按照模块进行分配,course文件夹就是放和 课程信息管理相关的JSP页面.假如我们输入https://localhost:8080/项目名称/p