如何用注解简化SSH框架

一、简化代码第一步,删除映射文件,给实体类加上注解

@Entity        //声明当前类为hibernate映射到数据库中的实体类
@Table(name="news")        //声明table的名称
public class News {
    @Id        //声明此列为主键,作为映射对象的标识符
    /**
     *  @GeneratedValue注解来定义生成策略
     *  GenerationType.TABLES 当前主键的值单独保存到一个数据库的表中
     *  GenerationType.SEQUENCE  利用底层数据库提供的序列生成标识符
     *  GenerationType.IDENTITY 采取数据库的自增策略
     *  GenerationType.AUTO 根据不同数据库自动选择合适的id生成方案,这里使用mysql,为递增型
     */
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Column(name="title",nullable=false)
    private String title;

    @Column(name="content",nullable=false)
    private String content;

    @Column(name="begintime",nullable=false)
    private Date begintime;

    @Column(name="username",nullable=false)
    private String username;

    public News() {
        super();
    }

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }

    public Date getBegintime() {
        return begintime;
    }
    public void setBegintime(Date begintime) {
        this.begintime = begintime;
    }

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }

}

修改applicationContext.xml文件

<!-- 删掉这段代码 -->
<!-- <property name="mappingResources">
  <list>
    <value>news/entity/News.hbm.xml</value>
  </list>
</property> -->    

<!-- 加上这段代码 -->
<!-- 扫描实体类包,解析实体类的注解 -->
<property name="packagesToScan">
  <list>
    <!-- 这里value值添实体类所在的包 -->
    <value>news.entity</value>
  </list>
</property>

二、用注解代替<bean>注入:

1.其实,注解本身做不了任何事情,和XML一样,只起到配置的作用,主要在于背后强大的处理器,其中就包括了<context:annotation-config/>配置项里面的注解所使用的处理器,所以配置了<context:component-scanbase-package="">之后,便无需再配置<context:annotation-config>

[email protected]

在java代码中使用@Autowired或@Resource注解方式进行装配 ,这两个注解的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到名称匹配的bean才会按类型装配。
@Autowired一般装配在set方法之上,也可以装配在属性上边。

@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个所要装配类型的bean时,就会抛出BeanCreationException异常;我们可以使用@Qualifier配合@Autowired来解决这些问题。

[email protected]

@Resource的作用相当于@Autowired

@Resource有两个属性是比较重要的,分别是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略

4.使用Spring注解完成Bean的定义
以上我们介绍了通过@Autowired或@Resource来实现在Bean中自动注入的功能,下面我们将介绍如何注解Bean,从而从XML配置文件中完全移除Bean定义的配置。
@Component:只需要在对应的类上加上一个@Component注解,就将该类定义为一个Bean了:

使用@Component注解定义的Bean,默认的名称(id)是小写开头的非限定类名。如这里定义的Bean名称就是userDaoImpl。你也可以指定Bean的名称:
@Component("userDao")
@Component是所有受Spring管理组件的通用形式,Spring还提供了更加细化的注解形式:

@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean。目前版本)中,这些注解与@Component的语义是一样的,完全通用,在Spring以后的版本中可能会给它们追加更多的语义。所以,我们推荐使用@Repository、@Service、@Controller来替代@Component。

三、使用<context:component-scan />让Bean定义注解工作起来

时间: 2024-08-25 20:26:03

如何用注解简化SSH框架的相关文章

基于注解配置SSH框架

采用注解的方式,也不能完全的丢掉配置文件,因为配置文件是程序的入口,是基础.服务器启动最先加载web.xml文件,读取其中的配置信息,将程序运行所需要的信息进行初始化.因为是整合SSH,所以web.xml文件中需要配置Spring以及Struts的信息,同时Spring跟Struts也需要进行一些基本的配置. 首先配置web.xml文件 1. <?xml version="1.0" encoding="UTF-8"?> 2. <web-app xm

基于注解的ssh框架之spring配置文件

<?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/ssh root 123456 org.hibernate.dialect.MySQLDialect update true true false 版权声明:本文为博主原创文章,未经博主允许不得转载.

SSH框架的简化(struts2、spring4、hibernate5)

目的: 在上次的基础下,对ssh框架进行简化. 1.本文提纲:本文通过一个新闻管理系统的实例来简化ssh框架的代码编写,功能包括查询数据库中所有新闻信息,删除某条新闻信息.     2.本项目的搭建环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91,Tomcat 8.0 ,mysql数据库. 第一步:在eclipse里创建web项目 (news) 第二步:导入本次项目要使用到的jar包 第三步:在配置文件web.xml配置一个struts2的过滤器和spring

SSH框架简化(struts2+spring+hibernate)

目的: 通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写. 注意事项: .运行环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91,Tomcat 8.0,struts-2.3.30-apps,spring-framework-4.2.2.RELEASE,hibernate-release-5.2.2.Final,mysql数据库 一.  在eclipse右键新建一个项目并勾上生成web.xml文件 二.导入struts.spri

SSH框架的简化

---恢复内容开始--- 一.简易化的SSH框架,如图: SSH框架的搭建,我就不多说了. 二.简易的ssh框架的步骤: 1.重新编写applicationContext.xmlwen文件 <一>利用ssh框架里的类包(org.springframework.orm.hibernate5.LocalSessionFactoryBean)的配置,将数据库的用户名,密码等信息注入到连接池中,便于随时调用.代码图如下: <二>使用c3p0连接池配置数据库的基本信息,如下: <三&g

练习一:1.开发前奏,使用全注解整合最新版ssh框架

一.简介: 使用ssh框架开发,版本皆为最新版,具体版本为struts-2.3.30.hibernate-release-5.2.2.spring-framework-4.3.2,需要在jdk8下面运行.如果出现major version 52之类的错误,说明你的jdk版本不合适(51对应的是java 7). 二.导包: 1.struts2 包,导入struts2-blank里面的jar包以及struts2-spring-plugin-2.3.30包(本项目中控制器action不由spring容

SSH框架的简单搭建登录

一.SSH架构 1.Struts 2 + Spring + Hibernate 2.以Spring作为核心框架,数据持久化使用Hibernate完成,表现层使用Struts 2 3.Spring提供对象管理.面向切面编程等实用功能 4.通过Spring提供的服务简化编码.降低开发难度.提高开发效率 二.需要导入依赖jar SSH整合体验最不好的就是添加jar包,由于三个框架所依赖的jar包非常多,其中有一些jar包可能冲突,我们应该将冲突的jar包,保留高级版本的,删掉低级版本的. 其中stru

学习SSH框架

1.SSH框架的认知 在做相关的java的网页的开发制作时,良好的层次分解是十分有比要的,所以我们在云涌第三方的框架之下来简化还有名了我们相关的网站的开发. SSH框架实则为Struct + spring + hibernate 的三个组成的,其中struct,专注与前台的相关的请求的所对应的ActionForm还有其相关跳转的Action来 处理得到相关的JSP页面,从而来更新或是条状到相关用户的请求的服务页面,或是信息页面.而Hibernate的作用是体现在数据的持久化的层次中,我们对于页

SSH框架总结(框架分析+环境搭建+实例源代码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是眼下较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的总体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及