1、项目目录如下:
2、pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.peng</groupId>
<artifactId>spring-boot-nutz-beetl-demo-20170806</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-nutz-beetl-demo-20170806</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.nutz</groupId>
<artifactId>nutz</artifactId>
<version>1.r.62</version>
</dependency>
<!-- email -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3、beetl视图配置
package com.peng.config;
import org.beetl.core.resource.ClasspathResourceLoader;
import org.beetl.ext.spring.BeetlGroupUtilConfiguration;
import org.beetl.ext.spring.BeetlSpringViewResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* beetl视图配置
* @author pengcq 412940226@qq.com
* @date 2017年8月8日 下午10:49:28
*/
@Configuration
public class BeetlViewConfig {
@Bean(initMethod = "init", name = "beetlConfig")
public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
ClasspathResourceLoader classpathResourceLoader = new ClasspathResourceLoader(BeetlViewConfig.class.getClassLoader(),"templates");
beetlGroupUtilConfiguration.setResourceLoader(classpathResourceLoader);
return beetlGroupUtilConfiguration;
}
@Bean(name = "beetlViewResolver")
public BeetlSpringViewResolver getBeetlSpringViewResolver() {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setPrefix("/");
beetlSpringViewResolver.setSuffix(".html");
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setOrder(0);
beetlSpringViewResolver.setConfig(getBeetlGroupUtilConfiguration());
return beetlSpringViewResolver;
}
}
4、druid数据源配置
package com.peng.config;
import java.util.Properties;
import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
/**
* druid连接数据源配置
* @author pengcq 412940226@qq.com
* @date 2017年8月8日 下午10:49:54
*/
@Configuration
public class DruidDataSourceConfig {
private static final Logger logger = LoggerFactory.getLogger(DruidDataSourceConfig.class);
@Autowired Environment environment;
@Bean
public DataSource druidDataSource() throws Exception{
Properties properties = new Properties();
properties.put("url", environment.getProperty("spring.datasource.url"));
properties.put("username", environment.getProperty("spring.datasource.username"));
properties.put("password", environment.getProperty("spring.datasource.password"));
properties.put("driver", environment.getProperty("spring.datasource.driver-class-name"));
properties.put("type", environment.getProperty("spring.datasource.type"));
properties.put("platform", environment.getProperty("spring.datasource.platform"));
properties.put("initial-size", environment.getProperty("spring.datasource.tomcat.initial-size"));
properties.put("max-active", environment.getProperty("spring.datasource.tomcat.max-active"));
properties.put("initialPoolSize", environment.getProperty("spring.datasource.initialPoolSize"));
properties.put("minPoolSize", environment.getProperty("spring.datasource.minPoolSize"));
properties.put("maxPoolSize", environment.getProperty("spring.datasource.maxPoolSize"));
properties.put("maxStatements", environment.getProperty("spring.datasource.maxStatements"));
properties.put("maxIdleTime", environment.getProperty("spring.datasource.maxIdleTime"));
properties.put("acquireIncrement", environment.getProperty("spring.datasource.acquireIncrement"));
properties.put("acquireRetryAttempts", environment.getProperty("spring.datasource.acquireRetryAttempts"));
properties.put("acquireRetryDelay", environment.getProperty("spring.datasource.acquireRetryDelay"));
properties.put("testConnectionOnCheckin", environment.getProperty("spring.datasource.testConnectionOnCheckin"));
properties.put("idleConnectionTestPeriod", environment.getProperty("spring.datasource.idleConnectionTestPeriod"));
properties.put("checkoutTimeout", environment.getProperty("spring.datasource.checkoutTimeout"));
properties.put("filters", environment.getProperty("spring.datasource.filters"));
logger.info("druid datasource init success!");
return DruidDataSourceFactory.createDataSource(properties);
}
@Bean
public ServletRegistrationBean druidServletRegistrationBean(){
ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean(ServletRegistrationBean druidServletRegistrationBean){
FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(new WebStatFilter(), druidServletRegistrationBean);
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
5、nutz dao配置
import javax.sql.DataSource;
import org.nutz.dao.Dao;
import org.nutz.dao.impl.NutDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
/**
* nutz dao配置
* @author pengcq 412940226@qq.com
* @date 2017年8月8日 下午10:50:24
*/
@Configuration
@Component("dao")
public class SnutzDao extends NutDao implements Dao{
DataSource druidDataSource;
@Autowired
public void setDruidDataSource(DataSource druidDataSource) {
this.druidDataSource = druidDataSource;
setDataSource(druidDataSource);
}
}
6、application.properties配置
#
datasource
#
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&maxReconnects=10&connectTimeout=180000&socketTimeout=180000
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name==com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.platform=mysql
“`
源码地址:https://download.csdn.net/download/userrefister/10278234