ssm项目实战-hami音乐项目(一)

发布于:2025-08-15 ⋅ 阅读:(20) ⋅ 点赞:(0)

项目所需技术

  1. java基础,java反射,泛型
  2. html,css,JavaScript,jquery,bootstrap,layui
  3. Servlet,过滤器,监听器,jstl,el表达式,jsp,mysql,jdbc,xml,javaweb
  4. springmvc,mybatis,spring三大开发框架
  5. Maven(聚合ssm),junit单元测试
  6. jersy,图片服务器搭建(fastDFS)
  7. idea开发工具,powerdesigner数据库建模,Navicat连接数据库工具
  8. amchart报表开发

本项目致力于为没有项目经验的人来提供的第一个项目学习,本项目是实战项目,融入了多年的开发经验和思想,学完本项目可以获得项目开发的能力,可以找到java初级开发工程师的工作

搭建数据库环境

创建数据库

本次项目我们使用的是mysql,启动mysql服务器创建数据库ham

设计数据库模型

/*==============================================================*/

/* DBMS name:      MySQL 5.0                                    */

/* Created on:     2019/10/12 9:55:56                           */

/*==============================================================*/





drop table if exists ALBUM;



drop table if exists COMMENT;



drop table if exists MTYPE;



drop table if exists SONG;



drop table if exists SONGER;



drop table if exists TX_USER;



/*==============================================================*/

/* Table: ALBUM                                                 */

/*==============================================================*/

create table ALBUM

(

   AID                  int(10) not null auto_increment,

   ANAME                varchar(100),

   PIC                  varchar(200),

   COMPANY              varchar(50),

   PDATE                date,

   LANG                 varchar(50),

   primary key (AID)

);



/*==============================================================*/

/* Table: COMMENT                                               */

/*==============================================================*/

create table COMMENT

(

   COMMENT_ID           int(10) not null auto_increment,

   COM_COMMENT_ID       int(10),

   USER_ID              int(10),

   COMMENT_CONTENT      text,

   Z_COUNT              int(10),

   primary key (COMMENT_ID)

);



/*==============================================================*/

/* Table: MTYPE                                                 */

/*==============================================================*/

create table MTYPE

(

   TID                  int(10) not null auto_increment,

   TNAME                varchar(50),

   TDESC                varchar(100),

   primary key (TID)

);



/*==============================================================*/

/* Table: SONG                                                  */

/*==============================================================*/

create table SONG

(

   SID                  int(10) not null auto_increment,

   TID                  int(10),

   SRID                 int(10),

   AID                  int(10),

   SNAME                varchar(50),

   PIC                  varchar(100),

   MP3                  varchar(100),

   LRC                  text,

   IS_HOT               int(2),

   IS_NEW               int(2),

   PTIMES               int(100),

   AUDIT_STATUS         int(2),

   SHOW_STATUS          int(2),

   primary key (SID)

);



/*==============================================================*/

/* Table: SONGER                                                */

/*==============================================================*/

create table SONGER

(

   SRID                 int(10) not null auto_increment,

   TID                  int(10),

   SRNAME               varchar(20),

   INTRO                text,

   AREA                 varchar(20),

   PIC                  varchar(100),

   IS_HOT               int(2),

   primary key (SRID)

);



/*==============================================================*/

/* Table: TX_USER                                               */

/*==============================================================*/

create table TX_USER

(

   USER_ID              int(10) not null auto_increment,

   USERNAME             varchar(20),

   PASSWORD             varchar(20),

   QQ                   varchar(20),

   EMAIL                varchar(20),

   NICK                 varchar(20),

   TEL                  varchar(20),

   REG_TIME             date,

   primary key (USER_ID)

);

输入数据库

maven环境搭建

解压maven3.5.3

设置maven本地仓库

打开settings.xml修改本地仓库的位置

idea的配置

jdk配置

设置jdk1.8

配置maven

在idea中配置好maven的HOME和 settings.xml

maven项目

互联网的特点是后台和前台都需要开发:

前台:互联网用户访问的系统,对性能要求比较高。

后台:管理员访问的系统

1、Maven的依赖管理在架构中的使用

Maven:pom(Project Object Model),上图体现了maven的依赖管理,maven的依赖管理同样也可以依赖第三方的jar包。

​​​​​​​Maven的项目构建在架构的使用

项目的构建

测试主机:和生产环境一致,Linux,weblogic,git,maven,jdk,Jenkins

Source:必须要符合maven的目录结构

Project

        Src/main/java

        Src/main/resources

        Src/test/java

        Src/test/resources

        Pom.xml

mvn clean package

创建工程

ham-parent:父工程

        ham-portal: 前台模块

        ham-core:  底层公用的模块

        ham-console: 后台模块

        ham-file: 文件服务器模块​​​​​​​

加入pom文件的依赖

子模块要继承父模块,父模块要聚合子模块

ham-parent的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>cn.tx.music</groupId>
    <artifactId>ham-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>ham-core</module>
        <module>ham-console</module>
        <module>ham-portal</module>
        <module>ham-file</module>
    </modules>
    <packaging>pom</packaging>

    <dependencyManagement>
        <dependencies>
            <!-- spring -->
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl.version}</version>
            </dependency>

            <!-- log start -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <!-- log end -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>

            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>${mybatis-spring.version}</version>
            </dependency>

            <!--连接池-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>


            <!-- fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
            <!--文件上传处理-->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${commons-fileupload.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons-lang.version}</version>
            </dependency>
        </dependencies>

    </dependencyManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.0.2.RELEASE</spring.version>
        <slf4j.version>1.6.6</slf4j.version>
        <log4j.version>1.2.12</log4j.version>
        <mysql.version>5.1.6</mysql.version>
        <mybatis.version>3.4.5</mybatis.version>
        <aspectj.version>1.6.8</aspectj.version>
        <junit.version>4.12</junit.version>
        <servlet.version>2.5</servlet.version>
        <jsp.version>2.0</jsp.version>
        <jstl.version>1.2</jstl.version>
        <druid.version>1.1.10</druid.version>
        <fastjson.version>1.2.47</fastjson.version>
        <commons-io.version>2.0.1</commons-io.version>
        <commons-lang.version>2.6</commons-lang.version>
        <commons-fileupload.version>1.3.1</commons-fileupload.version>
        <commons-codec.version>1.10</commons-codec.version>
        <mybatis-spring.version>1.3.0</mybatis-spring.version>
        <jersey.version>1.2</jersey.version>
    </properties>

</project>

ham-core的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">
    <parent>
        <artifactId>ham-parent</artifactId>
        <groupId>cn.tx.music</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>ham-core</artifactId>


    <dependencies>
        <!-- spring -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- log start -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
        <!-- log end -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </dependency>

        <!--连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>


        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <!--文件上传处理-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.6</version>
        </dependency>
    </dependencies>
</project>

ham-console的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">
    <parent>
        <artifactId>ham-parent</artifactId>
        <groupId>cn.tx.music</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>ham-console</artifactId>
    <packaging>war</packaging>

    <name>ham-console</name>
    <dependencies>
        <dependency>
            <groupId>cn.tx.music</groupId>
            <version>1.0-SNAPSHOT</version>
            <artifactId>ham-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
        </dependency>
    </dependencies>
</project>

ham-portal的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">
    <parent>
        <artifactId>ham-parent</artifactId>
        <groupId>cn.tx.music</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>ham-portal</artifactId>
    <packaging>war</packaging>

    <name>ham-portal</name>


    <dependencies>
        <dependency>
            <groupId>cn.tx.music</groupId>
            <version>1.0-SNAPSHOT</version>
            <artifactId>ham-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    </dependencies>

</project>

搭建mybatis和spring的架构

建包

在ham-core中

1.java资源包下创建包如图所示

2. resources资源包下引入

日志文件log4j.properties

数据库连接文件:db.properties

逆向工程

在core工程中加入配置文件generatorConfig.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="mybatisGenerator" >
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/ham?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true" userId="root"
                        password="root">
        </jdbcConnection>

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="cn.tx.model"
                            targetProject=".\ham-core\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject=".\ham-core\src\main\resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cn.tx.dao"
                             targetProject=".\ham-core\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table tableName="songer" enableCountByExample="false"
               enableUpdateByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" selectByExampleQueryId="false"/>


        <!-- 有些表的字段需要指定java类型
         <table schema="" tableName="">
            <columnOverride column="" javaType="" />
        </table> -->
    </context>
</generatorConfiguration>

​​​​​​​在类中创建逆向工程的执行类

public class Generator {
   public void generator() throws Exception {
    List<String> warnings = new ArrayList<String>();
    boolean overwrite = true;
    /**指向逆向工程配置文件*/
    File configFile = new File("hami_core/src/main/resources/generatorConfig.xml");
    ConfigurationParser parser = new ConfigurationParser(warnings);
    Configuration config = parser.parseConfiguration(configFile);
    DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
            callback, warnings);
    myBatisGenerator.generate(null);
}

public static void main(String[] args) throws Exception {
    try {
        Generator generatorSqlmap = new Generator();
        generatorSqlmap.generator();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

执行逆向工程后,就会我们的项目中就会生成下面的代码

逆向工程做完后我们已经有了数据层和model

创建Service层

在service包中创建接口

public interface SongerService {


    public void addSonger(Songer songer);

    public Songer getSongerById(int songId);

    public void updateSonger(Songer songer);

    public void delSongerById(int songId);

}

在service.impl中创建接口的实现类

@Service
public class SongerServiceImpl implements SongerService {

    @Autowired
    private SongerMapper songerMapper;

    @Override
    public void addSonger(Songer songer) {
        songerMapper.insert(songer);
    }

    @Override
    public Songer getSongerById(int songId) {
        return songerMapper.selectByPrimaryKey(songId);
    }

    @Override
    public void updateSonger(Songer songer) {
        songerMapper.updateByPrimaryKeySelective(songer);
    }

    @Override
    public void delSongerById(int songId) {
        songerMapper.deleteByPrimaryKey(songId);
    }
}

​​​​​​​创建mybatis的全局配置文件

在resources里面创建sqlMapConfig.xml

注册映射配置文件SongerMapper.xml

<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <mappers>
        <mapper resource="mapper/SongerMapper.xml"/>
    </mappers>
</configuration>

创建spring的配置文件

<?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:aop="http://www.springframework.org/schema/aop"
       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/aop
   http://www.springframework.org/schema/aop/spring-aop.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd">

    <context:component-scan base-package="cn.tx"></context:component-scan>

    <context:property-placeholder location="classpath:db.properties"/>    

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${driverClass}"></property>
        <property name="url" value="${url}"></property>
        <property name="username" value="${uname}"></property>
        <property name="password" value="${pword}"></property>
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
    </bean>

    <bean id="mapperScan" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        <property name="basePackage" value="cn.tx.dao"></property>
    </bean>

    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED"/>
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="del*" propagation="REQUIRED"/>
            <tx:method name="modify*" propagation="REQUIRED"/>
            <tx:method name="remove*" propagation="REQUIRED"/>
            <tx:method name="get" read-only="true"></tx:method>
            <tx:method name="select" read-only="true"></tx:method>
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.tx.service..*.*(..))"></aop:advisor>
    </aop:config>
</beans>

​​​​​​​junit generator的安装

​​​​​​​首先,按照一般的规范来说,最后生成的测试类的路径,应该是在Test文件夹下,Test文件夹应该是与java文件夹一级的。例如下图这样。

下面就是设置的过程,首先,点击左上角的File—>Setting...

然后找到Other Settings—>Junit Generator这个选项4

然后修改这两个位置,其中Output Path可以修改为

  ${SOURCEPATH}/../test/${PACKAGE}/${FILENAME}。

如何这个设置之后生成的Test测试类路径还是不对,可以根据这个路径来推算

​​​​​​​在测试资源包内测试整合

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:beans.xml"})
public class SongerTest {

    @Autowired
    SongerService songerService;

    @Test
    public void testAdd(){
        Songer s = new Songer();
        s.setArea("北京");
        s.setIntro("很好");
        s.setIsHot(1);
        s.setPic("zz");
        s.setSrname("阳哥");
        songerService.addSonger(s);
    }

    @Test
    public void getById(){
        Songer songer = songerService.getSongerById(1);
        System.out.println(songer);
    }

    @Test
    public void updateSonger(){
        Songer songer = songerService.getSongerById(1);
        songer.setSrname("最亮的仔");
        songerService.updateSonger(songer);
    }

    @Test
    public void delSongerById(){
        songerService.delSongerById(1);
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到