配置Spring MVC

一,Spriing MVC 的使用
a.在generatorConfig(mysql).xml配置mybatis实体类进行自动生成bean,Mappper,dao等。
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >

<generatorConfiguration>
<!-- 设置mysql自动生成文件jar包路径 -->
<classPathEntry
location="./WebContent/WEB-INF/lib/mybatis-generator-core-1.3.1.jar" />
<!-- 此处指定生成针对MyBatis3的DAO -->
<context id="context" targetRuntime="MyBatis3">

<commentGenerator>
<property name="suppressAllComments" value="true" />
<property name="defaultModelType" value="hierarchical"/>
</commentGenerator>

<!-- jdbc连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/db" userId="root" password="123456" />

<!-- 生成entity对象及保存路径 -->
<javaModelGenerator targetPackage="com.controller.bean"
targetProject="src" />

<!-- 生成xml文件以及配置文件及保存路径 -->
<sqlMapGenerator targetPackage="com.controller.mapper"
targetProject="src" />

<!-- 生成用于查询的dao对象及保存路径 -->
<javaClientGenerator targetPackage="com.controller.dao"
targetProject="src" type="XMLMAPPER" />


<!-- 想要生成的数据库表,自动化工具会根据该表的结构生成相应的vo对象 -->

<table schema="" tableName="数据库表名"
domainObjectName="生成实体类名" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false" />

</context>

</generatorConfiguration>

b.在MyBatisGeneratorTool.java程序中进行读取生成相应的文件,生成之后刷新即可看到。

package config.mybatis;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

/**
* MyBatis工具类:自动生成代码
* @author Studio
*
*/
public class MyBatisGeneratorTool_mysql {

private static Logger log = Logger.getLogger(MyBatisGeneratorTool_mysql.class);

public static void main(String[] args){

try {

// 读取使用Java的特性文件编写的配置文件。
// PropertyConfigurator.configure("//config//mybatis//log4j.properties");

List<String> warnings = new ArrayList<String>();

boolean overwrite = true;

// generator文件路径
String genCfg = "/config/mybatis/generatorConfig(mysql).xml";
log.info(" generator path :"+ genCfg);

File configFile = new File(MyBatisGeneratorTool_mysql.class.getResource(genCfg).getFile());

ConfigurationParser configPaser = new ConfigurationParser(warnings);

Configuration config = configPaser.parseConfiguration(configFile);

DefaultShellCallback callback = new DefaultShellCallback(overwrite);

MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

myBatisGenerator.generate(null);

log.debug("successful!!!");

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XMLParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

c.配置sqlMapConfig.xml文件,添加实体类与别名,导入相应的mapper与对应的xml文件。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 添加别名 -->
<typeAliases>
<typeAlias type="com.controller.bean.Users" alias="Users" />
</typeAliases>

<!-- 导入mapper配置文件 -->
<mappers>
<mapper resource="com/controller/mapper/UsersMapper.xml" />
</mappers>

</configuration>

d,配置beans,让dao,impl,service之间交互。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [
<!ENTITY contextInclude SYSTEM "org/springframework/web/context/WEB-INF/contextInclude.xml">
]>
<!-- 配置bean -->
<beans>
<!-- tuanshang_users配置 -->

<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.controller.dao.UsersMapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
<bean id="userServiceBase" class="com.controller.business.login.service.impl.IUserMapperImpl">
<property name="usermapper" ref="userDao"></property>
</bean>
<bean id="userService" parent="transactionBese">
<property name="target" ref="userServiceBase"></property>
</bean>
</beans>
e,编写程序相关的dao,impl,service层并传递到controller进行操作到相应的jsp页面。

二,Spring MVC注解
1,导入注解需要使用的jar包放置到lib目录
2,配置spring.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 默认注解扫描包的路径 -->
<context:component-scan base-package="com.controller" />
<!-- 导入注解所需要的jar包 -->
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>


<!-- 静态资源访问 -->
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/img/" mapping="/img/**" />
<mvc:resources location="/js/" mapping="/js/**" />
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/airline/" mapping="/airline/**" />

<!--定义跳转文件的前后缀 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

<!--配置表单上传的视图解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<property name="maxUploadSize" value="10485760000" />
<property name="maxInMemorySize" value="40960" />
</bean>

<!-- <bean id="initCity" class="com.controller.business.reservation.service.serviceImpl.InitBean"
init-method="createPool"> </bean> -->
</beans>
3,使用注解-->常用注解
@Controller 用于action类上,声明Action组件
@Service 用于service或biz的类上声明Service组件 @Service("serviceName")
@Repository 用于dao包下的类上声明Dao组件 @Repository("daoName")
@Component 用于不确定类上 引号中的内容表示给组件取名字,相当于bean标签中的id属性值<bean id="person"> @Component("className")
@RequestMapping("/url") 用于用户请求映射的地址 @RequestMapping("/loginJump")
@Resource 用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")
@Autowired 用于注入,(srping提供的) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@Scope("prototype") 设定bean的作用域
@PostConstruct 注解实始化方法
@PreDestroy 注解销毁方法
@ModelAttribute("reg_form") 用于方法内作为参数


附:
如何使用Mybatis自动生成bean,Mappper,dao等。
先导入需要使用的jar包:mybatis-generator-core-1.3.2.jar 放到项目的lib路径下.
配置generatorConfig(mysql).xml,放到指定新建的包中,配置详情如下:
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >

<generatorConfiguration>
<!-- 设置mysql自动生成文件jar包路径 -->
<classPathEntry
location="./WebContent/WEB-INF/lib/mybatis-generator-core-1.3.2.jar" />
<!-- 此处指定生成针对MyBatis3的DAO -->
<context id="context" targetRuntime="MyBatis3">

<commentGenerator>
<property name="suppressAllComments" value="true" />
<property name="defaultModelType" value="hierarchical"/>
</commentGenerator>

<!-- jdbc连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/db" userId="root"
password="123456" />

<!-- 生成entity对象及保存路径 -->
<javaModelGenerator targetPackage="com.controller.bean"
targetProject="src" />

<!-- 生成xml文件以及配置文件及保存路径 -->
<sqlMapGenerator targetPackage="com.controller.mapper"
targetProject="src" />

<!-- 生成用于查询的dao对象及保存路径 -->
<javaClientGenerator targetPackage="com.controller.dao"
targetProject="src" type="XMLMAPPER" />


<!-- 想要生成的数据库表,自动化工具会根据该表的结构生成相应的vo对象 -->

<table schema="" tableName="数据库表名"
domainObjectName="生成entity对象名" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false" />

<!-- <table schema="" tableName="qbz_users"
domainObjectName="Users" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false" /> -->
</context>

</generatorConfiguration>

下面为自动生成文件的程序代码

package config.mybatis;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

/**
* MyBatis工具类:自动生成代码
* @author Studio
*
*/
public class MyBatisGeneratorTool_mysql {

private static Logger log = Logger.getLogger(MyBatisGeneratorTool_mysql.class);

public static void main(String[] args){

try {

// 读取使用Java的特性文件编写的配置文件。
// PropertyConfigurator.configure("//config//mybatis//log4j.properties");

List<String> warnings = new ArrayList<String>();

boolean overwrite = true;

// generator文件读取路径
String genCfg = "/config/mybatis/generatorConfig(mysql).xml";
log.info(" generator path :"+ genCfg);

File configFile = new File(MyBatisGeneratorTool_mysql.class.getResource(genCfg).getFile());

ConfigurationParser configPaser = new ConfigurationParser(warnings);

Configuration config = configPaser.parseConfiguration(configFile);

DefaultShellCallback callback = new DefaultShellCallback(overwrite);

MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

myBatisGenerator.generate(null);

log.debug("successful!!!");

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XMLParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

解决项目中多个xml文件读取
在web.xml文件中增加配置如下:
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/xxx/*.xml</param-value>
xxx表示xml文件路径 *.xml表示后缀名为xml的任意文件
</init-param>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值