spring mvc 的搭建

来源:互联网 发布:罗尼库尔曼数据深蹲 编辑:程序博客网 时间:2024/06/06 07:19
首先配置web.xml,配置Spring的监听器,用于初始化ApplicationContext对象:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 配置Spring的监听器,用于初始化ApplicationContext对象 -->    <listener>      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>  </web-app>



然后配置ApplicationContext对象的参数:
  <context-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:applicationContext*.xml</param-value>    </context-param>  



然后添加spring mvc servlet :

 <servlet>  <description>spring mvc servlet</description>  <servlet-name>springMvc</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <init-param>   <description>spring mvc 配置文件</description>   <param-name>contextConfigLocation</param-name>   <param-value>classpath:spring-mvc.xml</param-value>  </init-param>  <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>  <servlet-name>springMvc</servlet-name>  <url-pattern>*.do</url-pattern> </servlet-mapping>



数据库连接方式:proxool
 
<!-- proxool --> <servlet>  <servlet-name>ServletConfigurator</servlet-name>  <servlet-class>   org.logicalcobwebs.proxool.configuration.ServletConfigurator  </servlet-class>  <init-param>   <param-name>xmlFile</param-name>   <param-value>WEB-INF/proxool.xml</param-value>  </init-param>  <load-on-startup>1</load-on-startup> </servlet> <!-- proxool监控 --> <servlet>  <servlet-name>Admin</servlet-name>  <servlet-class>   org.logicalcobwebs.proxool.admin.servlet.AdminServlet  </servlet-class> </servlet>


监控url:
 <servlet-mapping>  <servlet-name>Admin</servlet-name>  <url-pattern>/admin</url-pattern> </servlet-mapping>



配置applicationContext.xml文件(在src目录下):

<?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:context="http://www.springframework.org/schema/context"          xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:aop="http://www.springframework.org/schema/aop"         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd                      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd                 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">    </beans>



首先,自动扫描与装配bean:
 
     <!-- 自动扫描与装配bean -->          <context:component-scan base-package="com.xxx.jcy.entity"/>    <context:component-scan base-package="com.xxx.jcy.daoI"/>    <context:component-scan base-package="com.xxx.jcy.daoImpl"/>    <context:component-scan base-package="com.xxx.jcy.serviceI"/>    <context:component-scan base-package="com.xxx.jcy.serviceImpl"/>      <!-- Spring 获取配置文件中定义的bean -->    <context:annotation-config/>    <!-- dbcp配置 -->        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">              <property name="driverClassName">                <value>org.logicalcobwebs.proxool.ProxoolDriver</value>            </property>            <property name="url">                <value>proxool.1EEAFDADAA5014E938548EF816B3C6E1</value>            </property>        </bean>        <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">                <property name="dataSource">                <ref local="dataSource" />            </property>            <property name="hibernateProperties">                <props>                    <!--配置Hibernate的方言-->                    <prop key="hibernate.dialect">                     org.hibernate.dialect.OracleDialect                    </prop>                                    <prop key="hibernate.hbm2ddl.auto">update</prop>                                       <!--格式化输出sql语句-->                    <prop key="hibernate.show_sql">true</prop>                    <prop key="hibernate.format_sql">true</prop>                      <prop key="hibernate.use_sql_comments">false</prop>                  <prop key="hibernate.cache.use_second_level_cache">false</prop>                <!--                    <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>             -->            </props>            </property>             <!-- 注解方式配置 -->  <property name="packagesToScan">   <list>    <value>com.xxx.jcy.entity</value>   </list>  </property>    </bean>         <!-- JDBC配置 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  <property name="dataSource">  <ref bean="dataSource"/>  </property> </bean>      <!--自动扫描实体 -->     <bean name="transactionManager"  class="org.springframework.orm.hibernate4.HibernateTransactionManager">  <property name="sessionFactory" ref="sessionFactory"></property> </bean>   <!-- 配置事务 --> <tx:annotation-driven transaction-manager="transactionManager" />



接下来,配置spring-mvc.xml(在src目录下):
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd       http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-3.0.xsd         http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ">  <context:annotation-config /> <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 --> <context:component-scan base-package="com.xxx.jcy.action"></context:component-scan>  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />  <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->           <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"              p:prefix="/WEB-INF/view/" p:suffix=".jsp" />      <bean id="multipartResolver"              class="org.springframework.web.multipart.commons.CommonsMultipartResolver"              p:defaultEncoding="utf-8" />   </beans>




另外,proxool.xml(在WEB-INF目录下) 文件内容如下:

<?xml version='1.0' encoding='iso-8859-1'?><something-else-entirely> <proxool>  <alias>1EEAFDADAA5014E938548EF816B3C6E1</alias>  <driver-url>jdbc:oracle:thin:@192.168.16.46:1521:orcl</driver-url>  <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  <driver-properties>   <property name="user" value="jcy1"/>   <property name="password" value="jcy1"/>  </driver-properties>  <house-keeping-sleep-time>90000</house-keeping-sleep-time>  <simultaneous-build-throttle>20</simultaneous-build-throttle>  <prototype-count>5</prototype-count>  <maximum-connection-count>200</maximum-connection-count>  <minimum-connection-count>10</minimum-connection-count> </proxool> <proxool>  <alias>proxool</alias>  <driver-url>jdbc:oracle:thin:@192.168.16.46:1521:orcl</driver-url>  <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  <driver-properties>   <property name="user" value="JCY"/>   <property name="password" value="JCY"/>  </driver-properties>  <house-keeping-sleep-time>90000</house-keeping-sleep-time>  <simultaneous-build-throttle>20</simultaneous-build-throttle>  <prototype-count>5</prototype-count>  <maximum-connection-count>200</maximum-connection-count>  <minimum-connection-count>10</minimum-connection-count> </proxool></something-else-entirely>




接下来是java MVC层的代码示例:
DAO层:
首先定义接口:
public interface CommonDaoI {}



实现类:
@Repository("commonDao")public class CommonDaoImpl implements CommonDaoI {@Autowired private JdbcTemplate jdbcTemplate;@Autowiredprivate SessionFactory sessionFactory;//TODO 以下可自由于添加操作数据库的方法}


Service层:
接口:
public interface CommonServiceI {}



实现类:
@Service("commonServiceImpl")@Transactionalpublic class CommonServiceImpl implements CommonServiceI {    @Autowired     private CommonDaoI commonDao ;        //.......方法}



控制层:
@Controller@RequestMapping("/commonAction.do")public class CommonAction {  @Autowired private CommonServiceI commonService ;//检查验证码是否正确,正确返回"1"@RequestMapping(params="checkHtmlCode") public void checkHtmlCode(HttpServletRequest request,HttpServletResponse response){  String htmlCode = request.getSession().getAttribute("htmlCode").toString();  String checkCode = request.getParameter("checkCode");  if(checkCode!=null && checkCode.equalsIgnoreCase(htmlCode)){   try {    PrintWriter pw = response.getWriter();    pw.write("1");    pw.flush();   } catch (IOException e) {    e.printStackTrace();   }  } }}




实现bean对象示例:
@Entity@Table(name = "jcy_xhcx_grsq", schema = "")@SuppressWarnings("serial")public class XhcxGrsqEntity implements java.io.Serializable{ /**被查询人姓名*/ private java.lang.String grsqBcxry; /**主键*/ private java.lang.String id; /**国籍/地区*/ private java.lang.String grsqGjdq; /**身份证/护照号码*/ private java.lang.String grsqIdnumber; /**手机号码*/ private java.lang.String grsqTel; /**身份证照片*/ private String grsqIdph; /**申请用途*/ private java.lang.String grsqSqyt; /**申请状态*/ private java.lang.String grsqState; /**申报号*/ private java.lang.String grsqSbh; /**申报密码*/ private java.lang.String grsqSbpsw; /**申请人*/ private java.lang.String grsqSqr; /**申请人ID*/ private java.lang.String grsqSqrid; /**申请时间*/ private java.lang.String grsqSqsj;  //投标项目名称 private String grsqTbxm;  //招标单位名称 private String grsqZbdw;  @Column(name ="GRSQ_TBXM",nullable=true,length=200) public String getGrsqTbxm() {  return grsqTbxm; } public void setGrsqTbxm(String grsqTbxm) {  this.grsqTbxm = grsqTbxm; } @Column(name ="GRSQ_ZBDW",nullable=true,length=200) public String getGrsqZbdw() {  return grsqZbdw; } public void setGrsqZbdw(String grsqZbdw) {  this.grsqZbdw = grsqZbdw; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  被查询人姓名  */ @Column(name ="GRSQ_BCXRY",nullable=true,length=20) public java.lang.String getGrsqBcxry(){  return this.grsqBcxry; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  被查询人姓名  */ public void setGrsqBcxry(java.lang.String grsqBcxry){  this.grsqBcxry = grsqBcxry; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  主键  */ @Id @GeneratedValue(generator="hibernate-uuid") @GenericGenerator(name="hibernate-uuid",strategy="uuid") @Column(name ="GRSQ_UNID",nullable=false,length=32) public java.lang.String getId(){  return this.id; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  主键  */ public void setId(java.lang.String id){  this.id = id; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  国籍/地区  */ @Column(name ="GRSQ_GJDQ",nullable=true,length=10) public java.lang.String getGrsqGjdq(){  return this.grsqGjdq; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  国籍/地区  */ public void setGrsqGjdq(java.lang.String grsqGjdq){  this.grsqGjdq = grsqGjdq; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  身份证/护照号码  */ @Column(name ="GRSQ_IDNUMBER",nullable=true,length=30) public java.lang.String getGrsqIdnumber(){  return this.grsqIdnumber; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  身份证/护照号码  */ public void setGrsqIdnumber(java.lang.String grsqIdnumber){  this.grsqIdnumber = grsqIdnumber; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  手机号码  */ @Column(name ="GRSQ_TEL",nullable=true,length=11) public java.lang.String getGrsqTel(){  return this.grsqTel; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  手机号码  */ public void setGrsqTel(java.lang.String grsqTel){  this.grsqTel = grsqTel; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申请用途  */ @Column(name ="GRSQ_SQYT",nullable=true,length=10) public java.lang.String getGrsqSqyt(){  return this.grsqSqyt; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申请用途  */ public void setGrsqSqyt(java.lang.String grsqSqyt){  this.grsqSqyt = grsqSqyt; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申请状态  */ @Column(name ="GRSQ_STATE",nullable=true,length=10) public java.lang.String getGrsqState(){  return this.grsqState; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申请状态  */ public void setGrsqState(java.lang.String grsqState){  this.grsqState = grsqState; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申报号  */ @Column(name ="GRSQ_SBH",nullable=true,length=30) public java.lang.String getGrsqSbh(){  return this.grsqSbh; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申报号  */ public void setGrsqSbh(java.lang.String grsqSbh){  this.grsqSbh = grsqSbh; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申报密码  */ @Column(name ="GRSQ_SBPSW",nullable=true,length=30) public java.lang.String getGrsqSbpsw(){  return this.grsqSbpsw; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申报密码  */ public void setGrsqSbpsw(java.lang.String grsqSbpsw){  this.grsqSbpsw = grsqSbpsw; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申请人  */ @Column(name ="GRSQ_SQR",nullable=true,length=20) public java.lang.String getGrsqSqr(){  return this.grsqSqr; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申请人  */ public void setGrsqSqr(java.lang.String grsqSqr){  this.grsqSqr = grsqSqr; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申请人ID  */ @Column(name ="GRSQ_SQRID",nullable=true,length=32) public java.lang.String getGrsqSqrid(){  return this.grsqSqrid; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申请人ID  */ public void setGrsqSqrid(java.lang.String grsqSqrid){  this.grsqSqrid = grsqSqrid; } /**  *方法: 取得java.lang.String  *@return: java.lang.String  申请时间  */ @Column(name ="GRSQ_SQSJ",nullable=true,length=50) public java.lang.String getGrsqSqsj(){  return this.grsqSqsj; } /**  *方法: 设置java.lang.String  *@param: java.lang.String  申请时间  */ public void setGrsqSqsj(java.lang.String grsqSqsj){  this.grsqSqsj = grsqSqsj; } @Column(name ="GRSQ_IDPH",nullable=true) public String getGrsqIdph() {  return grsqIdph; } public void setGrsqIdph(String grsqIdph) {  this.grsqIdph = grsqIdph; }}







0 0
原创粉丝点击