xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns="xmlns:
web="
xsi:
schemaLocation="
version="2.5">
spring3mvc
spring
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:
/spring/mvc-init.xml
1
spring
/
初始化DispatcherServlet如果没有指定xml文件地址,spring默认去WEB-INF目录找[servlet-name]-servlet.xml,这里就是spring-servlet.xml
启动工程,浏览器访问http:
localhost:
8080/springmvc/test就能看到返回test值了,springmvc配置完成
freemarker模板引擎
springmvc通常要配置模板引擎,因为jsp太复杂了,而且有损mvc模型
freemarker是一种严格遵循mvc模型的模板引擎,现在介绍它的springmvc中的配置
首先配置依赖
org.springframework
spring-context-support
3.2.17.RELEASE
org.freemarker
freemarker
2.3.23
为什么要依赖spring-context-support?
因为freemarker使用的视图解析器是由spring提供的,这个解析器就在spring-context-support的jar中,下面的配置过程会让你明白,在springmvc的mvc-init.xml中配置freemarker
--freemarkerconfig-->
配置freemarker的本质是初始化上面的两个bean,所以,你可以把这段配置写在任意的xml文件,只要springmvc能加载就行
在WEB-INF目录建一个page目录,里面放一个freemarker.ftl文件,内容只有一句话“freemarkerpage中文乱码测试”
最后,在控制器写一个方法
@RequestMapping("/freemarker")
publicStringfreemarker(){
return"freemarker";
}
启动工程,访问http:
//localhost:
8080/springmvc/freemarker就能看到“freemarkerpage中文乱码测试”这句话了
thymeleaf模板引擎
thymeleaf也是一个mvc模型的模板引擎,它的后缀是.html,所以thymeleaf模板的好处是不用渲染就能看到内容,现在spring也是推荐用thymeleaf作为springmvc的模板引擎
配置依赖
org.thymeleaf
thymeleaf-spring3
2.1.5.RELEASE
这是thymeleaf与spring连接用的jar,它依赖了thymeleaf的jar,对于spring3和spring4,thymeleaf的依赖是不同的,配置也稍有不同,这点要注意,下面就开始配置thymeleaf
--thymeleafconfig-->
这段配置放在springmvc能读到的任意xml文件都可以
在WEB-INF目录建一个page目录,里面放一个thymeleaf.html,内容只有一行“thymeleafpage中文乱码测试”
最后,在控制器写一个方法
@RequestMapping("/thymeleaf")
publicStringthymeleaf(){
return"thymeleaf";
}
启动工程,访问http:
//localhost:
8080/springmvc/thymeleaf就能看到“thymeleafpage中文乱码测试”这句话了
tomcatpool数据库连接池
可能用dbcp、c3p0连接池的人多一点,其实tomcatpool更好,具体怎么好请google,下面介绍针对mysql数据库的配置过程
配置依赖
mysql
mysql-connector-java
5.1.27
org.apache.tomcat
tomcat-jdbc
7.0.73
tomcat-jdbc依赖了tomcat-juli,所以如果你在eclipse中为工程加入了tomcat的库,还需要单独加一个tomcat-juli的jar
下面整一个Main.java来测试连接
packagecom.xmyself;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.Statement;
importorg.apache.tomcat.jdbc.pool.DataSource;
importorg.apache.tomcat.jdbc.pool.PoolProperties;
publicclassMain{
publicstaticvoidmain(String[]args)throwsException{
PoolPropertiesp=newPoolProperties();
p.setUrl("jdbc:
mysql:
//localhost:
3306/mysql");
p.setDriverClassName("com.mysql.jdbc.Driver");
p.setUsername("root");
p.setPassword("root");
p.setJmxEnabled(true);
p.setTestWhileIdle(false);
p.setTestOnBorrow(true);
p.setValidationQuery("SELECT1");
p.setTestOnReturn(false);
p.setValidationInterval(30000);
p.setTimeBetweenEvictionRunsMillis(30000);
p.setMaxActive(100);
p.setInitialSize(10);
p.setMaxWait(10000);
p.setRemoveAbandonedTimeout(60);
p.setMinEvictableIdleTimeMillis(30000);
p.setMinIdle(10);
p.setLogAbandoned(true);
p.setRemoveAbandoned(true);
p.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"
+"org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");
DataSourcedatasource=newDataSource();
datasource.setPoolProperties(p);
Connectioncon=null;
try{
con=datasource.getConnection();
Statementst=con.createStatement();
ResultSetrs=st.executeQuery("select*fromuser");
intcnt=1;
while(rs.next()){
System.out.println((cnt++)+".Host:
"+rs.getString("Host")
+"User:
"+rs.getString("User")+"Password:
"
+rs.getString("Password"));
}
rs.close();
st.close();
}finally{
if(con!
=null)
try{
con.close();
}catch(Exceptionignore){
}
}
}
}
这个例子是tomcat官方文档给出的,运行结果如下
1.Host:
localhostUser:
rootPassword:
*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
2.Host:
127.0.0.1User:
rootPassword:
*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
3.Host:
:
:
1User:
rootPassword:
*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
4.Host:
localhostUser:
Password:
5.Host:
%User:
rootPassword:
*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
那spring怎么集成tomcatpool呢?
配置xml让spring加载就好了
mysql:
//localhost:
3306/mysql"/>
这里配置的属性与官方例子set方法中的属性完全相同,其余的我就不配置了
然后写一个测试,这里以springmvc为例,写一个controller,具体代码与上例相同
@Controller
publicclassTest{
@Autowired
privateDataSourcedatasource;
@RequestMapping("/test")
@ResponseBody
publicStringtest()throwsException{
Connectioncon=datasource.getConnection();
//拿到con就可以操作了
return"springmvcrunning";
}
}
mybatis持久化框架
mybatis轻量级,配置简单,使用方便,我们在tomcatpool基础上来配置,当然,使用tomcatpool配置只是为了得到dataSource,如果你用dbcp、c3p0等连接池,只要修改下这个dataSource的配置就好,mybatis本身的配置不用修改
配置依赖
org.mybatis
mybatis