maven,spring-boot配置文件(完整项目)

1,pom.xml

<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>cn.net</groupId>
  <artifactId>spring-boot-helloword</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>


  <name>spring-boot-helloword</name>
  <url>http://maven.apache.org</url>

<parent>
<!-- spring-boot-starter-parent -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.13.RELEASE</version>
</parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--指定jdk-->
<java.version>1.8</java.version>

  </properties>


  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
<!--spring-boot-starter-web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency> 
<!--fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.17</version>
</dependency>  
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<!-- mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- jpa依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--thymeleaf依赖配置信息  -->
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--freemarker依赖配置信息  -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>


 
  </dependencies>
  <build>
  <plugins>
<plugin>
<!--springloaded  hot deploy
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
<dependencies>     
   <dependency>  
       <groupId>org.springframework</groupId>  
       <artifactId>springloaded</artifactId>  
       <version>1.2.4.RELEASE</version>
   </dependency>  
</dependencies>  
<executions>  
   <execution>  
       <goals>  
           <goal>repackage</goal>  
       </goals>  
       <configuration>  
           <classifier>exec</classifier>  
       </configuration>  
   </execution>  
</executions>
-->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
          <!--fork :  如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
                <fork>true</fork>
            </configuration>
</plugin>
  </plugins>

  </build>

</project>

2,application.properties

########################################################
###server 配置信息
########################################################
#springboot默认端口号是8080
#server.port = 8081
#springboot默认context-path是/
#server.context-path=/spring-boot-helloword


#server.port=8080
#server.address= # bind to a specific NIC
#server.session-timeout= # session timeout in seconds
#the context path, defaults to '/'
#server.context-path=/spring-boot
#server.servlet-path= # the servlet path, defaults to '/'
#server.tomcat.access-log-pattern= # log pattern of the access log
#server.tomcat.access-log-enabled=false # is access logging enabled
#server.tomcat.protocol-header=x-forwarded-proto # ssl forward headers
#server.tomcat.remote-ip-header=x-forwarded-for
#server.tomcat.basedir=/tmp # base dir (usually not needed, defaults to tmp)
#server.tomcat.background-processor-delay=30; # in seconds
#server.tomcat.max-threads = 0 # number of threads in protocol handler
#server.tomcat.uri-encoding = UTF-8 # character encoding to use for URL decoding


########################################################
###THYMELEAF (ThymeleafAutoConfiguration)配置信息
########################################################
#spring.thymeleaf.prefix=classpath:/templates/
#spring.thymeleaf.suffix=.html
#spring.thymeleaf.mode=HTML5
#spring.thymeleaf.encoding=UTF-8
# ;charset=<encoding> is added
#spring.thymeleaf.content-type=text/html 
# set to false for hot refresh
spring.thymeleaf.cache=false 


########################################################
###FREEMARKER (FreeMarkerAutoConfiguration)配置信息
########################################################
spring.freemarker.allow-request-override=false
spring.freemarker.cache=false
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.prefix=
#spring.freemarker.request-context-attribute=
#spring.freemarker.settings.*=
spring.freemarker.suffix=.ftl
#spring.freemarker.template-loader-path=classpath:/templates/ #comma-separated list
#spring.freemarker.view-names= # whitelist of view names that can be resolved


########################################################
###datasource 指定mysql数据库连接信息
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10


########################################################
### Java Persistence Api jpa配置信息
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

3,app.java 主函数入口

package cn.net;


import java.util.ArrayList;
import java.util.List;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;


import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;


/**
 * Helloworld
 * @author Administrator
 * @version v.0.1
 * @date 2018年6月13日
 */
@SpringBootApplication
public class App extends WebMvcConfigurerAdapter{
// public class App{
   //第一种方式
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// TODO Auto-generated method stub
super.configureMessageConverters(converters);
// 1、需要先定义一个 convert 转换消息的对象;
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastConfig = new FastJsonConfig();
fastConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat
);
//处理中文乱码问题(不然出现中文乱码)
List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);
//3、在convert中添加配置信息.
fastConverter.setFastJsonConfig(fastConfig);

//4、将convert添加到converters当中.
converters.add(fastConverter);
}
//第二种方式
/*@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1、需要先定义一个 convert 转换消息的对象;
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//处理中文乱码问题(不然出现中文乱码)
List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);
    //3、在convert中添加配置信息.
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
//4、将convert添加到converters当中.
return new HttpMessageConverters(converter);
}*/


public static void main( String[] args )
    {
    SpringApplication.run(App.class, args);
     //   System.out.println( "Hello World!" );
    }
}

4,Demo.java(实体类)

package cn.net;


import java.util.Date;


import com.alibaba.fastjson.annotation.JSONField;


/**
 * 这是一个测试实体类.
 * @author Angel -- 守护天使
 * @version v.0.1
 * @date 2016年12月10日
 */
public class Demo {
private int id;
private String name;

//com.alibaba.fastjson.annotation.JSONField
@JSONField(format="yyyy-MM-dd HH:mm")
private Date createTime;//创建时间.

/*
* 我们不想返回remarks?
* serialize:是否需要序列化属性.
*/
@JSONField(serialize=false)
private String remarks;//备注信息.


public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
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;
}


}

5,controller.java

package cn.net;


import java.util.Date;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * 在这里@Restcontroller等价于(@controller加上@ResponseBody)
 * @author Administrator
 * @version v.0.1
 * @date 2018年6月13日
 */
@RestController
public class HelloController {
/**
* 在这里使用@RequestMapping请求,建立请求映射
* http://127.0.0.1:8080/hello
* @return
*/
@RequestMapping("/hello")
public String Hello()
{
return "springboot";
}
@RequestMapping("/getDemo")
public Demo getDemo()
{
Demo demo =new Demo();
demo.setId(1);
demo.setName("ahnxahsjs你好");
demo.setCreateTime(new Date());
demo.setRemarks("java你好");
return demo;
}


@RequestMapping("/sprin")
public String spgi()
{
return "你好 ";
}

@RequestMapping("/hao")
public String hao()
{
return "你好萨达 ";
}

}

----controller.java

package cn.net;


import java.util.Date;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * 在这里@Restcontroller等价于(@controller加上@ResponseBody)
 * @author Administrator
 * @version v.0.1
 * @date 2018年6月13日
 */
@RestController
public class HelloController {
/**
* 在这里使用@RequestMapping请求,建立请求映射
* http://127.0.0.1:8080/hello
* @return
*/
@RequestMapping("/hello")
public String Hello()
{
return "springboot";
}
@RequestMapping("/getDemo")
public Demo getDemo()
{
Demo demo =new Demo();
demo.setId(1);
demo.setName("ahnxahsjs你好");
demo.setCreateTime(new Date());
demo.setRemarks("java你好");
return demo;
}


@RequestMapping("/sprin")
public String spgi()
{
return "你好 ";
}

@RequestMapping("/hao")
public String hao()
{
return "你好萨达 ";
}

}

5,dao,java

package cn.net.demo.bean.dao;


import javax.annotation.Resource;


import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;


import cn.net.demo.bean.Cat;


@Repository
public class CatDao {
/**
 * 定义一个sql语句
 * 定义一个RowMapper
 * 执行查询方法
 */
@Resource
private JdbcTemplate jdbcTemplate;

public Cat selectByCatName(String catName){
//定义一个sql语句
String sql = "select *from cat where cat_name=?";
//定义一个RowMapper
RowMapper<Cat> rowMapper = new BeanPropertyRowMapper<Cat>(Cat.class);
// return jdbcTemplate.queryForObject(sql, rowMapper,new Object[]{catName});
//执行查询方法
return jdbcTemplate.queryForObject(sql, rowMapper,catName);
}



}

22,实体类

package cn.net.demo.bean;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;


/**
 * 1,创建了一个实体类
 * 
 * 如何持久化呢?
 * 
 * 使用@entity实现实体类的持久化操作,当jpa检测到我们实体类当中有@entity
 * 
 * 注解的时候,会在数据库中生成对应的表结构信息
 * 
 * 2,使用@id指定主键
 * 
 * @author Administrator
 *
 */
@Entity
public class Cat {


private int id;//主键

private String catName;//姓名

private int catAge;//年龄
/**
* 使用@id指定主键
* 使用代码@GeneratedValue(strategy=GenerationType.AUTO)
* 指定主键的生成策略,MySQL默认的是自增长
* @return
*/
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
}


public void setId(int id) {
this.id = id;
}


public String getCatName() {
return catName;
}


public void setCatName(String catName) {
this.catName = catName;
}


public int getCatAge() {
return catAge;
}


public void setCatAge(int catAge) {
this.catAge = catAge;
}


}

 

3,controller.java

package cn.net.demo.controller;


import javax.annotation.Resource;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


import cn.net.demo.bean.Cat;
import cn.net.demo.service.CatService;


@RestController
@RequestMapping("/cat")
public class CatController {


@Resource
private CatService catService;


@RequestMapping("/save")
public String save()
{
Cat cat =new Cat();
cat.setCatName("pake");
cat.setCatAge(3);
catService.save(cat);
return "save.ok";
}

@RequestMapping("/delete")
public String delete()
{
catService.delete(9);
return "save.ok";
}

@RequestMapping("/getAll")
public Iterable<Cat> getAll()
{
return catService.getAll();
}

@RequestMapping("/findByCatName")
public Cat findByCatName(String catName)
{
return catService.findByCatName(catName);
}

@RequestMapping("/findByCatName2")
public Cat findByCatName2(String catName)
{
System.out.println("CatController.findByCatName2");
return catService.findByCatName2(catName);
}

@RequestMapping("/selectByCatName")
public Cat selectByCatName(String catName)
{
return catService.selectByCatName(catName);
}

}

2,设置全局异常类

package cn.net.demo.excption;


import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.servlet.ModelAndView;
/**
 * 1,新建一个类GlobalDefaultExceptionHandler,
 * 2,在class注解上@ControllerAdvice
 * 3,在class上添加一个方法
 * 在方法上注解上@ExceptionHandler(Exception.class)
 * @author 龚道松
 * @date 2018年6月15日 上午10:09:31
 * @version v.0.1
 *
 */
@ControllerAdvice
public class GlobalDefaultExceptionHandler {


@ResponseBody
@ExceptionHandler(Exception.class)
public String defaultErrorHandler(HttpServletRequest req, Exception e)  {
// ModelAndView mv =new ModelAndView();
// mv.setViewName("请转到其他页面");
return "对不起服务器繁忙,请稍后再试!";

}

}

3,查询类

package cn.net.demo.repository;


import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;


import cn.net.demo.bean.Cat;
/**
 * 1,查询方法以 get | safind |  read 开头
 * 2,涉及查询条件时,条件是属性用条件关键字连接,条件属性首字母大写
 * @author 龚道松
 * @date 2018年6月14日 下午9:17:34
 * @version v.0.1
 *
 */
public interface Cat2Repository extends CrudRepository<Cat, Integer>{


//根据catName查询,
public Cat findByCatName(String catName);
/**
* 如何编写jpql语句
* hibernate。。。hql语句
* jpql语句和hql语句类似的语句
*/
@Query("from Cat where catName=:cn")
public Cat findMyCatName(@Param("cn")String catName);

}

4,service

package cn.net.demo.service;


import javax.annotation.Resource;
import javax.transaction.Transactional;


import org.springframework.stereotype.Service;


import cn.net.demo.bean.Cat;
import cn.net.demo.bean.dao.CatDao;
import cn.net.demo.repository.Cat2Repository;
import cn.net.demo.repository.CatRepository;


@Service
public class CatService {


@Resource
private CatRepository catRepository;


@Resource
private Cat2Repository cat2Repository;
@Resource
private CatDao catDao;

/**
* save update delete 方法需要绑定事物
* 
* 使用@Transactional进行事物绑定
* 
* @param cat
*/
//保存数据
@Transactional
public void save(Cat cat)
{
catRepository.save(cat);
}

//删除数据
@Transactional
public void delete(int id)
{
catRepository.delete(id);
}

//查询数据
public Iterable<Cat> getAll()
{
return catRepository.findAll();
}

//查询数据
public Cat findByCatName(String catName)
{
return cat2Repository.findByCatName(catName);
}

//查询数据
public Cat findByCatName2(String catName)
{
return cat2Repository.findMyCatName(catName);
}

//查询数据
public Cat selectByCatName(String catName)
{
return catDao.selectByCatName(catName);
}

}

5,页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
<h1>
Hello,thymeleaf
<br/>
this is my first thymeleaf demo
<hr/>
welcome <span th:text="${name}"></span>
</h1>
</body>

</html>

页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
<h1>
<h1>Hello.v.2</h1>
    <p>${name}</p>
</h1>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值