SSH框架整合,annotation版
来源:互联网 发布:航模电调编程 编辑:程序博客网 时间:2024/06/03 20:36
通过maven 整合ssh 框架,用xml 配置太麻烦了,所有想用annotation 的方式整合一下ssh 框架,这样只需要很少的配置,就可以使用ssh 框架了,好了,废话不多说,上货。
首先是我在这次整合中用到的各种依赖。对于依赖已经加好了注释。
<!-- servelt servlet的api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- struts2 的依赖 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.12</version> </dependency> <!-- struts2零配置插件 @Action --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>2.5.12</version> </dependency> <!-- hibernate 依赖 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.12.Final</version> </dependency> <!-- spring context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!-- spring 对于orm技术的一些支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!-- spring 对于web技术的一些支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!-- struts2对spring开发的plugin --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.5.12</version> </dependency> <!-- mysql 连接包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.43</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.41</version> </dependency>
接下里在spring 中配置一下sessionFactroy 这样在hibernate 就不要配置,且将sessionFactroy 交给spring 管理。用的时候只要autowried 就好,更方便,后面会提到。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byType"> <context:component-scan base-package="com.woomoon"></context:component-scan> <!-- 已经new好的sessionfactory,使用的不是hibernate的sessionFactory,而是spring对于orm技术支持下面的LocalSessionFactoryBean --> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!-- 配置文件的位置 --> <property name="configLocations" value="classpath:hibernate.cfg.xml"></property> </bean></beans>
再配置一下hibernate,等一下做一个测试可以看到效果。
hibernate.cfg.xml<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property><!--连接字符串--> <property name="connection.url">jdbc:mysql://127.0.0.1/test</property> <property name="connection.username">root</property><!--用户名--> <property name="connection.password">qwe</property><!--密码--> <!-- SQL dialect--> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- Echo all executed SQL to stdout 是否打印sql语句 --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup 映射数据表 <property name="hbm2ddl.auto">create</property> --> <!--当一个类被加上注解后,这个实体类与数据表之间就会产生映射关系 --> <mapping class="com.woomoon.entitys.StuEntity"/> </session-factory></hibernate-configuration>
hibernate 中映射的实体类:
package com.woomoon.entitys;import javax.persistence.Entity;import javax.persistence.Id;@Entity(name="tb_stu") //这里一定要加@Entity 这个annotation ,否者对象关系映射不起来,会报错的public class StuEntity extends BaseEntity { @Id private Integer stu_id; private String stu_name; private String stu_sex;//略去getter and setter 方法,大家补一下吧。}
建一个testbean 的类:为后面做测试:
package com.woomoon.dao.impl;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import com.woomoon.entitys.StuEntity;@Repository("testBean") //定义testBeanpublic class TestBean { //自动注入,不需要再进行xml的配置。 @Autowired SessionFactory sessionFactory; public List<StuEntity> queryStu () { try { Session session = sessionFactory.openSession(); List<StuEntity> list = session.createQuery("from tb_stu", StuEntity.class).getResultList();// HttpServletResponse response = ServletActionContext.getResponse(); return list; } catch (Exception e) { e.printStackTrace(); } return null; }}
先完成以上配置,到测试类中看一下效果,
测试类代码:package stu_ssh;import java.util.List;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.woomoon.dao.impl.TestBean;import com.woomoon.entitys.StuEntity;public class Test { private static ClassPathXmlApplicationContext cp; public static void main(String[] args) { cp = new ClassPathXmlApplicationContext("spring.xml"); TestBean testbean = (TestBean) cp.getBean("testBean");//拿到testBean List<StuEntity> list = testbean.queryStu(); System.out.println("\n\n\n"+list); }}
结果:
然后我们继续整合struts2 框架,
这里struts2 的配置没有,完全不需要配置xml 但是拦截器需要用到xml 配置,我这里就不配置了,建一个action包,这个不用解释,大家应该都懂,上action类,继续完成后面的配置,package com.woomoon.action;import java.util.List;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Result;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import com.woomoon.entitys.StuEntity;public class TestAction { @Autowired SessionFactory sessionFactory; @Action(value = "index", results = { @Result(name = "success", location = "/WEB-INF/html/index.html") }) public String queryStu() { return "success"; }//这里只是做个测试,就不调用数据访问层了,直接将sessionFactory注入进来, @Action("query4list") public void query4lis() { try { Session session = sessionFactory.openSession(); List<StuEntity> list = session.createQuery("from tb_stu", StuEntity.class).getResultList(); HttpServletResponse response = ServletActionContext.getResponse(); response.setCharacterEncoding("utf-8"); response.getWriter().write(list.toString()); } catch (Exception e) { e.printStackTrace(); } }}
配置一下web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>stu_ssh</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>default.html</welcome-file> </welcome-file-list> <!-- struts 拦截所有的请求 *.action 也可以 --> <filter> <filter-name>stu_ssh</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>stu_ssh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--初始化spring 容器--> <listener> <display-name>spring-web</display-name> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param></web-app>
启动tomcat 看一下效果。
访问一下与index.action ,看一下效果,
再来访问一下query4list.action 看一下json 返回的数据
大致配置就是如此。不足之处,多多指教。不喜勿喷,谢谢!
转载请指明出处。谢谢!
阅读全文
0 0
- SSH框架整合,annotation版
- 基于Annotation注解整合SSH框架和基于XML文件配置Bean整合SSH框架
- 基于Annotation注解整合SSH框架和基于XML文件配置Bean整合SSH框架
- SSH整合-XML版和Annotation版
- SSH框架整合——精简版
- SSH框架整合——精简版
- ssh框架整合(xml版)
- SSH框架整合笔记
- ssh框架整合
- SSH框架整合
- SSH+DWR 框架 整合
- SSH框架整合步骤
- SSH框架的整合
- SSH框架整合步骤
- SSH框架整合步骤
- SSH框架整合步骤
- SSH框架整合步骤
- ssh框架整合详解
- java蓝桥杯试题特殊回文字
- SSH整合Axis2
- ubuntu下如何正确使用vim编辑器
- 75个顶级开源安全应用
- Qt下载地址
- SSH框架整合,annotation版
- https传输协议原理
- JAVA原生Https Server安全设置
- 【LeetCode】206.Reverse Linked List(Easy)解题报告
- Ubuntu下配置ss服务器
- 3. Longest Substring Without Repeating Characters
- Get和Post、doGet()和doPost()
- java蓝桥杯试题特殊文字
- Level UP! 提升你的编程技能