intellij idea + spring boot + spring data jpa + druid + maven + mysql + thymeleaf

来源:互联网 发布:angularjs2 定义数组 编辑:程序博客网 时间:2024/06/02 01:58








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.example</groupId>    <artifactId>demo3</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>demo3</name>    <description>Demo project for Spring Boot</description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.3.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-data-jpa</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-thymeleaf</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-configuration-processor</artifactId>            <optional>true</optional>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.0.28</version>        </dependency>        <dependency>            <groupId>net.sourceforge.nekohtml</groupId>            <artifactId>nekohtml</artifactId>            <version>1.9.22</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>



application.properties

#加入这个是为了让thymeleaf语法检查不那么严格,方便写htmlspring.thymeleaf.mode = LEGACYHTML5spring.jpa.database: MYSQL# 数据库访问配置# 主数据源,默认的spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/hgwxm?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=# 下面为连接池的补充设置,应用到上面所有数据源中spring.jpa.show-sql = true# 下面为连接池的补充设置,应用到上面所有数据源中# 初始化大小,最小,最大spring.datasource.druid.initialSize=5spring.datasource.druid.minIdle=5spring.datasource.druid.maxActive=20# 配置获取连接等待超时的时间spring.datasource.druid.maxWait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.druid.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.druid.minEvictableIdleTimeMillis=300000spring.datasource.druid.validationQuery=SELECT 1 FROM t_userspring.datasource.druid.testWhileIdle=truespring.datasource.druid.testOnBorrow=truespring.datasource.druid.testOnReturn=false# 打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.druid.poolPreparedStatements=truespring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙spring.datasource.druid.filters=stat,wall,log4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 合并多个DruidDataSource的监控数据#spring.datasource.druid.useGlobalDataSourceStat=true


一个实体

package com.example.demo;import javax.persistence.*;import java.util.Date;@Entity@Table(name="site")public class Site {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private int id;    private int tmpid;    String name;    String url;    String account;    String pass;    String msg;    private Date createtime = new Date();    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getUrl() {        return url;    }    public void setUrl(String url) {        this.url = url;    }    public String getAccount() {        return account;    }    public void setAccount(String account) {        this.account = account;    }    public String getPass() {        return pass;    }    public void setPass(String pass) {        this.pass = pass;    }    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public int getTmpid() {        return tmpid;    }    public void setTmpid(int tmpid) {        this.tmpid = tmpid;    }    public Date getCreatetime() {        return createtime;    }    public void setCreatetime(Date createtime) {        this.createtime = createtime;    }}



实体对应的Service

package com.example.demo;import org.springframework.data.repository.CrudRepository;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface SiteService extends CrudRepository<Site, Integer> {          public List<Site> findAll();    public Site findOne(Integer id);      public Site save(Site site);      public void delete(Integer id);    }  


实例controller

package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class HomeController {    @Autowired    private SiteService siteService;    @RequestMapping("/")    String home(){        return "index";    }    @RequestMapping("/addSite")    @ResponseBody    String addSite(){        Site site = new Site();        site.setAccount("aaa123");        site.setMsg("哦哦");        site.setName("111");        site.setPass("123");        site.setUrl("http://www.baidu.com");        siteService.save(site);        return "success";    }}


//配置druid的类  DruidDataSourceConfiguration.java

package com.example.demo;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DatabaseDriver;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 javax.sql.DataSource;import java.util.Map;//参考  http://blog.csdn.net/caimengyuan/article/details/54926105@Configuration@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true)public class DruidDataSourceConfiguration {    @SuppressWarnings("unchecked")    protected <T> T createDataSource(DataSourceProperties properties,                                     Class<? extends DataSource> type) {        return (T) properties.initializeDataSourceBuilder().type(type).build();    }    /**     * @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解     * @param properties 读入的配置     * @return DruidDataSource     */    @Bean    @ConfigurationProperties("spring.datasource.druid")    public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) {        com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(                properties, com.alibaba.druid.pool.DruidDataSource.class);        DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl());        String validationQuery = databaseDriver.getValidationQuery();        if (validationQuery != null) {            dataSource.setTestOnBorrow(true);            dataSource.setValidationQuery(validationQuery);        }        return dataSource;    }    /**     * 注册一个StatViewServlet     */    @Bean    public ServletRegistrationBean druidStatViewServlet(){        //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");        //添加初始化参数:initParams        //白名单:        servletRegistrationBean.addInitParameter("allow","127.0.0.1");        //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.        servletRegistrationBean.addInitParameter("deny","192.168.1.73");        //登录查看信息的账号密码.        servletRegistrationBean.addInitParameter("loginUsername","root");        servletRegistrationBean.addInitParameter("loginPassword","password");        //是否能够重置数据.        servletRegistrationBean.addInitParameter("resetEnable","false");// 禁用HTML页面上的“Reset All”功能        return servletRegistrationBean;    }    /**     * 注册一个:filterRegistrationBean     */    @Bean    public FilterRegistrationBean druidStatFilter(){        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());        filterRegistrationBean.setName("druidWebStatFilter");        //添加过滤规则.        filterRegistrationBean.addUrlPatterns("/*");        //添加忽略的格式信息.        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");        return filterRegistrationBean;    }}



阅读全文
0 0
原创粉丝点击