您的位置:首页 > 编程语言 > Java开发

idea创建springboot项目图文教程(配置文件)(五)

2018-01-08 22:02 1161 查看
接上篇http://blog.csdn.net/hcmony/article/details/77854948

1,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.hcmony</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>springboot-demo</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.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</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>-->

<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
<!-- 导入dbcp2的jar包,用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>


2,application-hcmony.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:lang="http://www.springframework.org/schema/lang"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:task="http://www.springframework.org/schema/task" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.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.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.çspringframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd" default-autowire="byName" default-lazy-init="false">

<context:annotation-config/>
<context:component-scan base-package="com.hcmony"/>

<bean id="ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/hcmony?characterEncoding=utf8"/>
<!-- 数据库用户名 -->
<property name="username" value="root"/>
<!-- 密码 -->
<property name="password" value="root"/>
<!-- 连接初始值,连接池启动时创建的连接数量的初始值 -->
<property name="initialSize" value="10"/>
<!-- 最大空闲值.当经过一个高峰时间后,
连接池可以慢慢将已经用不到的连接慢慢释放一部分,
一直减少到maxIdle为止 ,0时无限制  -->
<property name="maxIdle" value="50"/>
<!-- 连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制 -->
<property name="maxTotal" value="50"/>
<!-- 最大等待时间  单位为毫秒-->
<property name="maxWaitMillis" value="10000"/>
<!-- 自动提交 -->
<property name="defaultAutoCommit" value="false"/>
<!-- 失效检查线程运行时间间隔,如果小于等于0,不会启动检查线程   -->
<property name="timeBetweenEvictionRunsMillis" value="3600000"/>
<!-- 大于0 ,进行连接空闲时间判断,或为0,对空闲的连接不进行验证;默认30分钟 -->
<property name="minEvictableIdleTimeMillis" value="3600000"/>
<!-- 是否自我中断, 默认是 false -->
<property name="removeAbandonedOnMaintenance" value="true"/>
<!-- 几秒后会自我中断, removeAbandoned 必须为 true -->
<property name="removeAbandonedTimeout" value="10"/>
<!-- 是否记录中断事件, 默认为 false -->
<property name="logAbandoned" value="true"/>
</bean>

<!-- sqlsession工厂配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="ds"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

<tx:annotation-driven/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds"/>
<property name="rollbackOnCommitFailure" value="true"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

</beans>


3,log4j.properties

log4j.rootLogger=INFO,Console,File

#控制台日志
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n

#普通文件日志,文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File=org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File=logs/hcmony.log
#定义文件最大大小
log4j.appender.File.MaxFileSize=10MB
#输出日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold=ALL
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n
#设置编码
log4j.appender.LOGFILE.encoding=UTF-8


4,application.properties

server.port=8081


5,SpringbootDemoApplication

package com.hcmony;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

@MapperScan(basePackages = "com/hcmony/mapper")
@ImportResource({"classpath:application-hcmony.xml"})
@SpringBootApplication
public class SpringbootDemoApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootDemoApplication.class, args);
}
}


6,UserController

package com.hcmony.controller;

import com.hcmony.model.User;
import com.hcmony.service.UserService;
import com.hcmony.utils.CodeIdEnum;
import com.hcmony.utils.ResponseData;
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.RestController;

/**
* Created by hcmony on 2017/9/1.
*/
@RestController
@RequestMapping("/user")
public class UserController {

@Autowired
private UserService userService;

@RequestMapping("/findUser")
public ResponseData findUser(Integer id){
System.out.println("-----------------");
User user = userService.findUser(id);
System.out.println("user的id是:"+user.getId());
System.out.println("user的名字是:"+user.getName());
return new ResponseData(CodeIdEnum.Success,user);
}

@RequestMapping("/saveUser")
public void saveUser(User user) throws Exception{
System.out.println("-----------------");
Integer num = userService.saveUser(user);
if(num!=null&&num>0){
System.out.println("保存成功了!");
}else {
System.out.println("保存失败了!");
}
}

}


7,UserMapper

package com.hcmony.mapper;

import com.hcmony.model.User;

/**
* Created by hcmony on 2017/9/1.
*/
public interface UserMapper {
public Integer save(User user);
public User findById(Integer id);
}


8,UserService

package com.hcmony.service;

import com.hcmony.model.User;

/**
* Created by hcmony on 2017/9/1.
*/

public interface UserService {
public Integer saveUser(User user)throws Exception;
public User findUser(Integer id);
}


9,UserServiceImpl

package com.hcmony.service.impl;

import com.hcmony.mapper.UserMapper;
import com.hcmony.model.User;
import com.hcmony.service.UserService;
import com.hcmony.utils.ExceptionRuntime;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
* Created by hcmony on 2017/9/1.
*/
@Service
public class UserServiceImpl implements UserService {

private static Logger logger = Logger.getLogger(UserService.class);

@Autowired
private UserMapper userMapper;

@Autowired
private UserImpl userImpl;

@Transactional(propagation = Propagation.REQUIRED)
@Override
public Integer saveUser(User user) throws Exception{
try {
logger.info("保存用户:"+user.getName());

Integer num = userMapper.save(user);
user.setName("失败前的"+user.getName());
System.out.println("saveUser--------------");
return num;
}catch(RuntimeException e) {
logger.error("保存用户失败");
throw new ExceptionRuntime();
}catch(Exception e){
logger.error("保存用户失败");
throw new Exception();
}
}

@Override
public User findUser(Integer id) {
try {
return userMapper.findById(id);
}catch (Exception e){
logger.error("查询用户失败",e);
}
return null;
}
}


10,User

package com.hcmony.model;

/**
* Created by hcmony on 2017/9/1.
*/
public class User {
private Integer id;
private String name;

public Integer getId() {
return id;
}

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

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}


11,UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hcmony.mapper.UserMapper" >
<resultMap id="resultMap" type="com.hcmony.model.User" >
<constructor >
<idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="name" jdbcType="VARCHAR" javaType="java.lang.String" />
</constructor>
</resultMap>
<sql id="sql" >
id, name
</sql>
<select id="findById" resultType="com.hcmony.model.User" parameterType="java.lang.Integer" >
select
<include refid="sql" />
from user
where id = #{id}
</select>

<insert id="save"  parameterType="com.hcmony.model.User">
insert into user (id, name)
values (#{id}, #{name})
</insert>

</mapper>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: