博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaEE框架整合之基于注解的SSH整合
阅读量:5333 次
发布时间:2019-06-15

本文共 10184 字,大约阅读时间需要 33 分钟。

基于注解的SSH整合

 

  1. 开发环节步骤:

    实体类 -----> DAO开发 -----> Service开发 -----> Action动作类开发 -----> 配置文件(applicationContext.xml)

     

  2. 导包:

    Struts2需要导入的jar:

    asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.3.1.jar commons-io-2.2.jar commons-lang3-3.2.jar freemarker-2.3.22.jar javassist-3.11.0-GA.jar log4j-core-2.2.jar log4j-api-2.2.jar ognl-3.0.6.jar struts2-core-2.3.24.jar xwork-core-2.3.24.jar ​ struts2-spring-plugin-2.3.24.jar struts-contention-plugin-2.3.14.jar ​

    导入struts2的注解开发包:struts-contention-plugin-2.3.14.jar

    |------ 注意: 如果不使用注解开发,千万不要导入这个包

    spring需要导入的jar:

    spring-aop-4.24.RELEASE.jar spring-aspectJ-4.24.RELEASE.jar spring-beans-4.24.RELEASE.jar spring-context-4.24.RELEASE.jar spring-core-4.24.RELEASE.jar spring-expression-4.24.RELEASE.jar spring-jdbc-4.24.RELEASE.jar spring-orm-4.24.RELEASE.jar spring-test-4.24.RELEASE.jar spring-tx-4.24.RELEASE.jar spring-web-4.24.RELEASE.jar ​ commons-logging-1.2.jar com.springsource.org.com.mchange.v2.c3p0-0.9.1.2.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

    hibernate需要导入的jar:

    antrl2-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar geronimo-jpa-2.0-api-1.0.1.Final.jar hibernate-core.5.0.7.Final.jar hibernate-jpa-2.1.Final.jar jandex-2.0.0.Final.jar javassist-3.18.1-GA.jar jboss-logging-3.3.0.Final.jar

    2.1 配置文件详解见 其他文章

  3. 实体类开发:

    package cn.javabs.entity; @Entity @Table(name="t_user") public class  User{
    @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer id;   @Column(name="username",length=50)   private String username;   private String password;   // 此处省略getter和setter方法     }

    在上述代码中:

    @Entity 注解为实体类制定类的路径

    @Id 注解是制定id为主键

    @Generated 注解是为主键制定生成策略

    以上注解实际上代表着hibernate的实体映射文件User.hbm.xml的功能。

    1. DAO开发

    @Repository public class UserDaoImpl implementsn UserDao{
      @Autowired   private HibernateTemplate hibernateTemplate;//提供Hibernate模板       public User findById(Integer id){
          return this.hibernateTemplate.get(User.class,id);   }   public List
    findAll(){
          this.hibenrateTemplate.find("from User");   }   public void save(User user){
          this.hibernateTemplate.save(user);   }   public void update(User user){
          this.hibernateTemplate.update(user);   }   public void delete(User user){
          this.hibernateTemplate.delete(user);   } }
  4. Service开发

    @Service public class UserServiceImpl implements UserService{
          @Autowired   private UserDao userDao;       @Transactional   public void saveUser(User user){
          this.userDao.save(user);   }         @Transactional   public void updateUser(User user){
          this.userDao.update(user);   }         @Transactional   public void deleteUser(User user){
          this.userDao.delete(user);   }         @Transactional(readOnly=true)   public User findUserById(Integer id){
          return this.userDao.findById(id);   }         @Transactional(readOnly=true)   public User findAll(){
          return this.userDao.findAll();   }     }

    在上述代码中,使用@Service 注解用于标注Service层信息

    @Autowired 用于自动注入UserDao接口

    @Transactional注解用于配置事务,此时可以删除掉spring配置文件中的相关的配置信息

     

  5. Action开发

    @Namespace("/") @ParentPackage("struts-default") @Controller public class UserAction extentds ActionSupport implements ModelDriven
    {
      //封装数据   private User user = new User();       public User getModel(){
          return user;   }       @Autowired   private UserService userService;       @Action(value="user_Action_add",results={@Result(name="add",location="/success.jsp")})   public String add(){
          userService.saveUser(user);       return "add";   }   }

    在以上代码中,

    @Namespace 和 @ ParentPackage 注解用于代替 Struts2 配置文件中对action的配置

    @Controller 注解用于Spring 容器中注册UserManagerAction实例

     

  6. applicationContext.xml配置文件开发

     
     
    ​  
     
         
         
    value="classpath:hibernate.cfg.xml">
       
    ​    
       
         
         
       
    ​    
       
         
       
    ​    
       

    6.hibernate.cfg.xml开发

    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/user
    root
    sorry
    org/hibernate.dialect.MySQL5Dialect
    true
    true
    update
         
    true
         
         
          org.hibernate.connection.C3P0ConnectionProvider      
                 
         
                       
       

     

基于注解的SSH整合

  1. 开发环节步骤:

    实体类 —–> DAO开发 —–> Service开发 —–> Action动作类开发 —–> 配置文件(applicationContext.xml)

  2. 导包:

    Struts2需要导入的jar:

    asm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcommons-fileupload-1.3.1.jarcommons-io-2.2.jarcommons-lang3-3.2.jarfreemarker-2.3.22.jarjavassist-3.11.0-GA.jarlog4j-core-2.2.jarlog4j-api-2.2.jarognl-3.0.6.jarstruts2-core-2.3.24.jarxwork-core-2.3.24.jarstruts2-spring-plugin-2.3.24.jarstruts-contention-plugin-2.3.14.jar
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    导入struts2的注解开发包:struts-contention-plugin-2.3.14.jar

    ​ |—— 注意: 如果不使用注解开发,千万不要导入这个包

    spring需要导入的jar:

    spring-aop-4.24.RELEASE.jarspring-aspectJ-4.24.RELEASE.jarspring-beans-4.24.RELEASE.jarspring-context-4.24.RELEASE.jarspring-core-4.24.RELEASE.jarspring-expression-4.24.RELEASE.jarspring-jdbc-4.24.RELEASE.jarspring-orm-4.24.RELEASE.jarspring-test-4.24.RELEASE.jarspring-tx-4.24.RELEASE.jarspring-web-4.24.RELEASE.jarcommons-logging-1.2.jarcom.springsource.org.com.mchange.v2.c3p0-0.9.1.2.jarcom.springsource.org.aopalliance-1.0.0.jarcom.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    hibernate需要导入的jar:

    antrl2-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jargeronimo-jpa-2.0-api-1.0.1.Final.jarhibernate-core.5.0.7.Final.jarhibernate-jpa-2.1.Final.jarjandex-2.0.0.Final.jarjavassist-3.18.1-GA.jarjboss-logging-3.3.0.Final.jar
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.1 配置文件详解见 其他文章

    1. 实体类开发:
    package cn.javabs.entity;@Entity@Table(name="t_user")public class  User{
    @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer id; @Column(name="username",length=50) private String username; private String password; // 此处省略getter和setter方法}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在上述代码中:

    ​ @Entity 注解为实体类制定类的路径

    ​ @Id 注解是制定id为主键

    ​ @Generated 注解是为主键制定生成策略

    以上注解实际上代表着hibernate的实体映射文件User.hbm.xml的功能。

    1. DAO开发
    @Repositorypublic class UserDaoImpl implementsn UserDao{
    @Autowired private HibernateTemplate hibernateTemplate;//提供Hibernate模板 public User findById(Integer id){ return this.hibernateTemplate.get(User.class,id); } public List
    findAll(){ this.hibenrateTemplate.find("from User"); } public void save(User user){ this.hibernateTemplate.save(user); } public void update(User user){ this.hibernateTemplate.update(user); } public void delete(User user){ this.hibernateTemplate.delete(user); }}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    1. Service开发
    @Servicepublic class UserServiceImpl implements UserService{
    @Autowired private UserDao userDao; @Transactional public void saveUser(User user){ this.userDao.save(user); } @Transactional public void updateUser(User user){ this.userDao.update(user); } @Transactional public void deleteUser(User user){ this.userDao.delete(user); } @Transactional(readOnly=true) public User findUserById(Integer id){ return this.userDao.findById(id); } @Transactional(readOnly=true) public User findAll(){ return this.userDao.findAll(); }}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在上述代码中,使用@Service 注解用于标注Service层信息

    @Autowired 用于自动注入UserDao接口

    @Transactional注解用于配置事务,此时可以删除掉spring配置文件中的相关的配置信息

    1. Action开发
    @Namespace("/")@ParentPackage("struts-default")@Controllerpublic class UserAction extentds ActionSupport implements ModelDriven
    {
    //封装数据 private User user = new User(); public User getModel(){ return user; } @Autowired private UserService userService; @Action(value="user_Action_add",results={@Result(name="add",location="/success.jsp")}) public String add(){ userService.saveUser(user); return "add"; } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在以上代码中,

    @Namespace 和 @ ParentPackage 注解用于代替 Struts2 配置文件中对action的配置

    @Controller 注解用于Spring 容器中注册UserManagerAction实例

    1. applicationContext.xml配置文件开发
    value="classpath:hibernate.cfg.xml">
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    6.hibernate.cfg.xml开发

    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/user
    root
    sorry
    org/hibernate.dialect.MySQL5Dialect
    true
    true
    update
    true
    org.hibernate.connection.C3P0ConnectionProvider
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

作者: 杨校

出处: 

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

转载于:https://www.cnblogs.com/xiaoxiao5016/p/9393935.html

你可能感兴趣的文章
京东静态网页练习记录
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>