项目完整搭建链接:https://gitee.com/DaNanHai04/ssm_parent.git
第一步 创建一个父工程:
导入父工程的pom坐标:
- <dependencies>
- <!--spring核心-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>5.0.2.RELEASE</version>
- </dependency>
-
- <!--spring-webmvc-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>5.0.2.RELEASE</version>
- </dependency>
-
- <!--spring-jdbc支持、spring-tx事务支持、aspectj 支持-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>5.0.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>5.0.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjweaver</artifactId>
- <version>1.8.7</version>
- </dependency>
-
- <!--spring-test-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>5.0.2.RELEASE</version>
- </dependency>
-
- <!--mybatis支持包-->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>3.4.5</version>
- </dependency>
-
- <!-- mybatis-spring整合包-->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- <version>1.3.1</version>
- </dependency>
-
- <!--数据库驱动包、连接池-->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.30</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.10</version>
- </dependency>
-
- <!-- fastJSON -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.56</version>
- </dependency>
-
- <!-- jstl 支持包-->
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
-
- <!--log4j、junit测试支持-->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- </dependency>
-
- </dependencies>
第二步 创建ssm_pojo子模块(mybatis逆向这里不做赘述,直接将生成好的复制即可)
创建实体类TbBrand实体类
- package com.itcode.pojo;
-
- import java.io.Serializable;
-
- public class TbBrand implements Serializable {
- private Long id;
-
- private String name;
-
- private String firstChar;
-
- //此处省略get/set方法以及toString方法
创建TbBrandExample条件类
- package com.itcode.pojo;
-
- import java.util.ArrayList;
- import java.util.List;
-
- public class TbBrandExample {
- protected String orderByClause;
-
- protected boolean distinct;
-
- protected List<Criteria> oredCriteria;
-
- public TbBrandExample() {
- oredCriteria = new ArrayList<Criteria>();
- }
-
- public void setOrderByClause(String orderByClause) {
- this.orderByClause = orderByClause;
- }
-
- public String getOrderByClause() {
- return orderByClause;
- }
-
- public void setDistinct(boolean distinct) {
- this.distinct = distinct;
- }
-
- public boolean isDistinct() {
- return distinct;
- }
-
- public List<Criteria> getOredCriteria() {
- return oredCriteria;
- }
-
- public void or(Criteria criteria) {
- oredCriteria.add(criteria);
- }
-
- public Criteria or() {
- Criteria criteria = createCriteriaInternal();
- oredCriteria.add(criteria);
- return criteria;
- }
-
- public Criteria createCriteria() {
- Criteria criteria = createCriteriaInternal();
- if (oredCriteria.size() == 0) {
- oredCriteria.add(criteria);
- }
- return criteria;
- }
-
- protected Criteria createCriteriaInternal() {
- Criteria criteria = new Criteria();
- return criteria;
- }
-
- public void clear() {
- oredCriteria.clear();
- orderByClause = null;
- distinct = false;
- }
-
- protected abstract static class GeneratedCriteria {
- protected List<Criterion> criteria;
-
- protected GeneratedCriteria() {
- super();
- criteria = new ArrayList<Criterion>();
- }
-
- public boolean isValid() {
- return criteria.size() > 0;
- }
-
- public List<Criterion> getAllCriteria() {
- return criteria;
- }
-
- public List<Criterion> getCriteria() {
- return criteria;
- }
-
- protected void addCriterion(String condition) {
- if (condition == null) {
- throw new RuntimeException("Value for condition cannot be null");
- }
- criteria.add(new Criterion(condition));
- }
-
- protected void addCriterion(String condition, Object value, String property) {
- if (value == null) {
- throw new RuntimeException("Value for " + property + " cannot be null");
- }
- criteria.add(new Criterion(condition, value));
- }
-
- protected void addCriterion(String condition, Object value1, Object value2, String property) {
- if (value1 == null || value2 == null) {
- throw new RuntimeException("Between values for " + property + " cannot be null");
- }
- criteria.add(new Criterion(condition, value1, value2));
- }
-
- public Criteria andIdIsNull() {
- addCriterion("id is null");
- return (Criteria) this;
- }
-
- public Criteria andIdIsNotNull() {
- addCriterion("id is not null");
- return (Criteria) this;
- }
-
- public Criteria andIdEqualTo(Long value) {
- addCriterion("id =", value, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdNotEqualTo(Long value) {
- addCriterion("id <>", value, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdGreaterThan(Long value) {
- addCriterion("id >", value, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdGreaterThanOrEqualTo(Long value) {
- addCriterion("id >=", value, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdLessThan(Long value) {
- addCriterion("id <", value, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdLessThanOrEqualTo(Long value) {
- addCriterion("id <=", value, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdIn(List<Long> values) {
- addCriterion("id in", values, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdNotIn(List<Long> values) {
- addCriterion("id not in", values, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdBetween(Long value1, Long value2) {
- addCriterion("id between", value1, value2, "id");
- return (Criteria) this;
- }
-
- public Criteria andIdNotBetween(Long value1, Long value2) {
- addCriterion("id not between", value1, value2, "id");
- return (Criteria) this;
- }
-
- public Criteria andNameIsNull() {
- addCriterion("name is null");
- return (Criteria) this;
- }
-
- public Criteria andNameIsNotNull() {
- addCriterion("name is not null");
- return (Criteria) this;
- }
-
- public Criteria andNameEqualTo(String value) {
- addCriterion("name =", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameNotEqualTo(String value) {
- addCriterion("name <>", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameGreaterThan(String value) {
- addCriterion("name >", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameGreaterThanOrEqualTo(String value) {
- addCriterion("name >=", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameLessThan(String value) {
- addCriterion("name <", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameLessThanOrEqualTo(String value) {
- addCriterion("name <=", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameLike(String value) {
- addCriterion("name like", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameNotLike(String value) {
- addCriterion("name not like", value, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameIn(List<String> values) {
- addCriterion("name in", values, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameNotIn(List<String> values) {
- addCriterion("name not in", values, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameBetween(String value1, String value2) {
- addCriterion("name between", value1, value2, "name");
- return (Criteria) this;
- }
-
- public Criteria andNameNotBetween(String value1, String value2) {
- addCriterion("name not between", value1, value2, "name");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharIsNull() {
- addCriterion("first_char is null");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharIsNotNull() {
- addCriterion("first_char is not null");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharEqualTo(String value) {
- addCriterion("first_char =", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharNotEqualTo(String value) {
- addCriterion("first_char <>", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharGreaterThan(String value) {
- addCriterion("first_char >", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharGreaterThanOrEqualTo(String value) {
- addCriterion("first_char >=", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharLessThan(String value) {
- addCriterion("first_char <", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharLessThanOrEqualTo(String value) {
- addCriterion("first_char <=", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharLike(String value) {
- addCriterion("first_char like", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharNotLike(String value) {
- addCriterion("first_char not like", value, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharIn(List<String> values) {
- addCriterion("first_char in", values, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharNotIn(List<String> values) {
- addCriterion("first_char not in", values, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharBetween(String value1, String value2) {
- addCriterion("first_char between", value1, value2, "firstChar");
- return (Criteria) this;
- }
-
- public Criteria andFirstCharNotBetween(String value1, String value2) {
- addCriterion("first_char not between", value1, value2, "firstChar");
- return (Criteria) this;
- }
- }
-
- public static class Criteria extends GeneratedCriteria {
-
- protected Criteria() {
- super();
- }
- }
-
- public static class Criterion {
- private String condition;
-
- private Object value;
-
- private Object secondValue;
-
- private boolean noValue;
-
- private boolean singleValue;
-
- private boolean betweenValue;
-
- private boolean listValue;
-
- private String typeHandler;
-
- public String getCondition() {
- return condition;
- }
-
- public Object getValue() {
- return value;
- }
-
- public Object getSecondValue() {
- return secondValue;
- }
-
- public boolean isNoValue() {
- return noValue;
- }
-
- public boolean isSingleValue() {
- return singleValue;
- }
-
- public boolean isBetweenValue() {
- return betweenValue;
- }
-
- public boolean isListValue() {
- return listValue;
- }
-
- public String getTypeHandler() {
- return typeHandler;
- }
-
- protected Criterion(String condition) {
- super();
- this.condition = condition;
- this.typeHandler = null;
- this.noValue = true;
- }
-
- protected Criterion(String condition, Object value, String typeHandler) {
- super();
- this.condition = condition;
- this.value = value;
- this.typeHandler = typeHandler;
- if (value instanceof List<?>) {
- this.listValue = true;
- } else {
- this.singleValue = true;
- }
- }
-
- protected Criterion(String condition, Object value) {
- this(condition, value, null);
- }
-
- protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
- super();
- this.condition = condition;
- this.value = value;
- this.secondValue = secondValue;
- this.typeHandler = typeHandler;
- this.betweenValue = true;
- }
-
- protected Criterion(String condition, Object value, Object secondValue) {
- this(condition, value, secondValue, null);
- }
- }
- }
创建一个Result返回通知类
- package com.itcode.pojo;
-
- import java.io.Serializable;
-
-
- public class Result implements Serializable {
- private boolean success; //判断该变量
- private String message; //返回的字符串
-
- public Result(boolean success, String message) {
- this.success = success;
- this.message = message;
- }
- //此处省略get/set方法,自行补全
第三步 创建ssm_dao子模块(逆向工程也可以生成)
创建TbBrandMapper接口类
- package com.itcode.dao;
-
- import com.itcode.pojo.TbBrand;
- import com.itcode.pojo.TbBrandExample;
- import org.apache.ibatis.annotations.Param;
-
- import java.util.List;
- import java.util.Map;
-
- public interface TbBrandMapper {
- int countByExample(TbBrandExample example);
-
- int deleteByExample(TbBrandExample example);
-
- int deleteByPrimaryKey(Long id);
-
- int insert(TbBrand record);
-
- int insertSelective(TbBrand record);
-
- List<TbBrand> selectByExample(TbBrandExample example);
-
- TbBrand selectByPrimaryKey(Long id);
-
- int updateByExampleSelective(@Param("record") TbBrand record, @Param("example") TbBrandExample example);
-
- int updateByExample(@Param("record") TbBrand record, @Param("example") TbBrandExample example);
-
- int updateByPrimaryKeySelective(TbBrand record);
-
- int updateByPrimaryKey(TbBrand record);
-
- List<Map> selectOptionList();
- }
创建TbBrandMapper.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.itcode.dao.TbBrandMapper" >
- <resultMap id="BaseResultMap" type="com.itcode.pojo.TbBrand" >
- <id column="id" property="id" jdbcType="BIGINT" />
- <result column="name" property="name" jdbcType="VARCHAR" />
- <result column="first_char" property="firstChar" jdbcType="VARCHAR" />
- </resultMap>
- <sql id="Example_Where_Clause" >
- <where >
- <foreach collection="oredCriteria" item="criteria" separator="or" >
- <if test="criteria.valid" >
- <trim prefix="(" suffix=")" prefixOverrides="and" >
- <foreach collection="criteria.criteria" item="criterion" >
- <choose >
- <when test="criterion.noValue" >
- and ${criterion.condition}
- </when>
- <when test="criterion.singleValue" >
- and ${criterion.condition} #{criterion.value}
- </when>
- <when test="criterion.betweenValue" >
- and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
- </when>
- <when test="criterion.listValue" >
- and ${criterion.condition}
- <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
- #{listItem}
- </foreach>
- </when>
- </choose>
- </foreach>
- </trim>
- </if>
- </foreach>
- </where>
- </sql>
- <sql id="Update_By_Example_Where_Clause" >
- <where >
- <foreach collection="example.oredCriteria" item="criteria" separator="or" >
- <if test="criteria.valid" >
- <trim prefix="(" suffix=")" prefixOverrides="and" >
- <foreach collection="criteria.criteria" item="criterion" >
- <choose >
- <when test="criterion.noValue" >
- and ${criterion.condition}
- </when>
- <when test="criterion.singleValue" >
- and ${criterion.condition} #{criterion.value}
- </when>
- <when test="criterion.betweenValue" >
- and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
- </when>
- <when test="criterion.listValue" >
- and ${criterion.condition}
- <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
- #{listItem}
- </foreach>
- </when>
- </choose>
- </foreach>
- </trim>
- </if>
- </foreach>
- </where>
- </sql>
- <sql id="Base_Column_List" >
- id, name, first_char
- </sql>
- <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.itcode.pojo.TbBrandExample" >
- select
- <if test="distinct" >
- distinct
- </if>
- <include refid="Base_Column_List" />
- from tb_brand
- <if test="_parameter != null" >
- <include refid="Example_Where_Clause" />
- </if>
- <if test="orderByClause != null" >
- order by ${orderByClause}
- </if>
- </select>
- <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
- select
- <include refid="Base_Column_List" />
- from tb_brand
- where id = #{id,jdbcType=BIGINT}
- </select>
- <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
- delete from tb_brand
- where id = #{id,jdbcType=BIGINT}
- </delete>
- <delete id="deleteByExample" parameterType="com.itcode.pojo.TbBrandExample" >
- delete from tb_brand
- <if test="_parameter != null" >
- <include refid="Example_Where_Clause" />
- </if>
- </delete>
- <insert id="insert" parameterType="com.itcode.pojo.TbBrand" >
- insert into tb_brand (id, name, first_char
- )
- values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{firstChar,jdbcType=VARCHAR}
- )
- </insert>
- <insert id="insertSelective" parameterType="com.itcode.pojo.TbBrand" >
- insert into tb_brand
- <trim prefix="(" suffix=")" suffixOverrides="," >
- <if test="id != null" >
- id,
- </if>
- <if test="name != null" >
- name,
- </if>
- <if test="firstChar != null" >
- first_char,
- </if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides="," >
- <if test="id != null" >
- #{id,jdbcType=BIGINT},
- </if>
- <if test="name != null" >
- #{name,jdbcType=VARCHAR},
- </if>
- <if test="firstChar != null" >
- #{firstChar,jdbcType=VARCHAR},
- </if>
- </trim>
- </insert>
- <select id="countByExample" parameterType="com.itcode.pojo.TbBrandExample" resultType="java.lang.Integer" >
- select count(*) from tb_brand
- <if test="_parameter != null" >
- <include refid="Example_Where_Clause" />
- </if>
- </select>
- <update id="updateByExampleSelective" parameterType="map" >
- update tb_brand
- <set >
- <if test="record.id != null" >
- id = #{record.id,jdbcType=BIGINT},
- </if>
- <if test="record.name != null" >
- name = #{record.name,jdbcType=VARCHAR},
- </if>
- <if test="record.firstChar != null" >
- first_char = #{record.firstChar,jdbcType=VARCHAR},
- </if>
- </set>
- <if test="_parameter != null" >
- <include refid="Update_By_Example_Where_Clause" />
- </if>
- </update>
- <update id="updateByExample" parameterType="map" >
- update tb_brand
- set id = #{record.id,jdbcType=BIGINT},
- name = #{record.name,jdbcType=VARCHAR},
- first_char = #{record.firstChar,jdbcType=VARCHAR}
- <if test="_parameter != null" >
- <include refid="Update_By_Example_Where_Clause" />
- </if>
- </update>
- <update id="updateByPrimaryKeySelective" parameterType="com.itcode.pojo.TbBrand" >
- update tb_brand
- <set >
- <if test="name != null" >
- name = #{name,jdbcType=VARCHAR},
- </if>
- <if test="firstChar != null" >
- first_char = #{firstChar,jdbcType=VARCHAR},
- </if>
- </set>
- where id = #{id,jdbcType=BIGINT}
- </update>
- <update id="updateByPrimaryKey" parameterType="com.itcode.pojo.TbBrand" >
- update tb_brand
- set name = #{name,jdbcType=VARCHAR},
- first_char = #{firstChar,jdbcType=VARCHAR}
- where id = #{id,jdbcType=BIGINT}
- </update>
- <select id="selectOptionList" resultType="java.util.Map">
- select id,name as text from tb_brand
- </select>
-
- </mapper>
第四步 创建ssm_service子模块
创建一个service接口
- package com.itcode.service;
-
- import com.itcode.pojo.TbBrand;
-
- import java.util.List;
-
- public interface BrandService {
- List<TbBrand> findAll();
-
- void insert(TbBrand brand);
- }
创建一个service的实现类
- package com.itcode.service.impl;
-
- import com.itcode.dao.TbBrandMapper;
- import com.itcode.pojo.TbBrand;
- import com.itcode.service.BrandService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
-
- import java.util.List;
-
- @Service
- @Transactional
- public class BrandServiceImpl implements BrandService {
- @Autowired
- private TbBrandMapper tbBrandDao;
- @Override
- public List<TbBrand> findAll() {
- return tbBrandDao.selectByExample(null);
- }
-
- @Override
- public void insert(TbBrand brand) {
- tbBrandDao.insert(brand);
- }
- }
jdbc.properties配置(在resource中配置)
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8
- jdbc.username=用户名
- jdbc.password=密码
applicationContext.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:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx.xsd">
-
- <!--1.注解扫描: 只扫描service包。-->
- <context:component-scan base-package="com.itcode.service"/>
-
- <!--2. 加载properties-->
- <context:property-placeholder location="classpath:jdbc.properties"/>
-
- <!--3. 创建连接池-->
- <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
- <property name="driverClassName" value="${jdbc.driver}"/>
- <property name="url" value="${jdbc.url}"/>
- <property name="username" value="${jdbc.username}"/>
- <property name="password" value="${jdbc.password}"/>
- </bean>
-
- <!--4. Spring整合Mybatis:把SqlSessionFactory对象的创建交给Spring完成-->
- <bean class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource"/>
- <!--<property name="mapperLocations" value="classpath:com/itcode/dao/TbBrandMapper.xml"/>-->
- </bean>
-
- <!--5. 扫描dao的接口所在包,自动对该包下所有的dao接口自动生成代理对象-->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.itcode.dao"/>
- </bean>
-
- <!--6. 事务管理器 -->
- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource" />
- </bean>
-
- <!--7. 开启事务控制的注解支持 -->
- <tx:annotation-driven transaction-manager="transactionManager"/>
-
- <!--以下配置请忽略只是为了回顾用-->
- <!--此处是第二种方式 Spring声明式事务管理配置-->
- <!--6.1 事务管理器
- <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource"/>
- </bean>
- 6.2 事务通知规则
- <tx:advice id="txAdvice" transaction-manager="txManager">
- <tx:attributes>
- <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
- <tx:method name="*" propagation="REQUIRED" read-only="false"/>
- </tx:attributes>
- </tx:advice>
- 6.3 Aop配置 = 切入点表达式 + 通知规则的引用
- <aop:config>
- <aop:pointcut id="pt" expression="execution(* com..*ServiceImpl.*(..))"/>
- <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
- </aop:config> -->
- </beans>
第五步 创建一个ssm_web子模块
web.xml配置
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- version="2.5">
-
- <!-- 解决post乱码 -->
- <filter>
- <filter-name>CharacterEncodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>utf-8</param-value>
- </init-param>
- <init-param>
- <param-name>forceEncoding</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>CharacterEncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <!--SpringMVC前端控制器-->
- <servlet>
- <servlet-name>dispatcherServlet</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:springMVC.xml</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>dispatcherServlet</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
-
- <!--配置监听器,加载applicationContext.xml配置文件-->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:applicationContext.xml</param-value>
- </context-param>
- </web-app>
springMVC.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:context="http://www.springframework.org/schema/context"
- 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/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">
-
- <!--1. 注解扫描: 之扫描controller包下的注解-->
- <context:component-scan base-package="com.itcode.controller"/>
-
- <!--2. 注解驱动,controller返回值支持json-->
- <mvc:annotation-driven>
- <mvc:message-converters register-defaults="true">
- <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
- <property name="supportedMediaTypes" value="application/json"/>
- <property name="features">
- <array>
- <value>WriteMapNullValue</value>
- <value>WriteDateUseDateFormat</value>
- </array>
- </property>
- </bean>
- </mvc:message-converters>
- </mvc:annotation-driven>
- </beans>
创建一个BrandController类
- package com.itcode.controller;
- import com.itcode.pojo.Result;
- import com.itcode.pojo.TbBrand;
- import com.itcode.service.BrandService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.util.List;
-
- @RestController
- @RequestMapping("/brand")
- public class BrandController {
-
- @Autowired
- private BrandService brandService;
-
- @RequestMapping("/findAll")
- public List<TbBrand> findAll(){
- return brandService.findAll();
- }
-
- @RequestMapping("/insert")
- public Result insert(@RequestBody TbBrand brand){
- try {
- brandService.insert(brand);
- return new Result(true, "新增成功");
- } catch (Exception e) {
- e.printStackTrace();
- return new Result(false, "新增失败");
- }
- }
- }
最后配置一下tomcat,启动tomcat可以了,如果想要测试我们的接口可以使用Postman进行测试。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。