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

接上篇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>
      <!-- 导入dbcp2jar包,用来在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("userid是:"+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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值