zoukankan      html  css  js  c++  java
  • JavaWeb三大框架基础架构——CRUD的基础功能搭建

    @

    介绍

    项目前端采用了bootstrap,后端是ssm三大框架

    注意

    这是项目的基础架构
    基础架构
    要注意的几个配置:applicationContext.xml,mybatis.xml,web.xml,pom.xml
    其中的pojo代码使用了lombok插件,前端分页用了pagehelp
    必要的applicationContext.xml(这是spring的核心,我把spring、springmvc和部分mybatis的代码都整合在里面了)

    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: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
            https://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/mvc
            https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!-- 配置整合mybatis -->
        <!-- 1.关联数据库文件 -->
        <context:property-placeholder location="classpath:database.properties"/>
    
        <!-- 2.数据库连接池 -->
        <!--数据库连接池
        dbcp 半自动化操作 不能自动连接
        c3p0 自动化操作(自动的加载配置文件 并且设置到对象里面)
        -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <!-- 配置连接池属性 -->
            <property name="driverClass" value="${jdbc.driver}"/>
            <property name="jdbcUrl" value="${jdbc.url}"/>
            <property name="user" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
    
            <!-- c3p0连接池的私有属性 -->
            <property name="maxPoolSize" value="30"/>
            <property name="minPoolSize" value="10"/>
            <!-- 关闭连接后不自动commit -->
            <property name="autoCommitOnClose" value="false"/>
            <!-- 获取连接超时时间 -->
            <property name="checkoutTimeout" value="10000"/>
            <!-- 当获取连接失败重试次数 -->
            <property name="acquireRetryAttempts" value="2"/>
        </bean>
    
        <!-- 3.配置SqlSessionFactory对象 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 注入数据库连接池 -->
            <property name="dataSource" ref="dataSource"/>
            <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
        </bean>
    
        <!-- 4.配置扫描Dao接口包,动态实现Dao接口注入到spring容器中 -->
        <!--解释 : https://www.cnblogs.com/jpfss/p/7799806.html-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!-- 注入sqlSessionFactory -->
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
            <!-- 给出需要扫描Dao接口包 -->
            <property name="basePackage" value="com.yishuai.dao"/>
        </bean>
    
        <!--    整合service-->
        <!-- 扫描service相关的bean -->
        <context:component-scan base-package="com.yishuai.service"/>
        <!--BookServiceImpl注入到IOC容器中-->
        <bean id="userServiceImpl" class="com.yishuai.service.UserServiceImpl">
            <property name="userMapper" ref="userMapper"/>
        </bean>
        <bean id="empServiceImpl" class="com.yishuai.service.EmpServiceImpl">
            <property name="empMapper" ref="empMapper"/>
        </bean>
        <bean id="deptServiceImpl" class="com.yishuai.service.DeptServiceImpl">
            <property name="deptMapper" ref="deptMapper"/>
        </bean>
    
        <!-- 配置事务管理器 -->
        <bean id="transactionManager"
              class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <!-- 注入数据库连接池 -->
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
        <!-- 配置SpringMVC -->
        <!-- 1.开启SpringMVC注解驱动 -->
        <mvc:annotation-driven/>
        <!-- 2.静态资源默认servlet配置-->
        <mvc:default-servlet-handler/>
        <!-- 3.配置jsp 显示ViewResolver视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
        <!-- 4.扫描web相关的bean -->
        <context:component-scan base-package="com.yishuai.controller"/>
    </beans>
    

    mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!--    驼峰命名-->
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        <!--    设置别名-->
        <typeAliases>
            <package name="com.yishuai.pojo"/>
        </typeAliases>
    
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageInterceptor">
                <!--reasonable:分页合理化参数,默认值为false,直接根据参数进行查询。
                  当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。-->
                <property name="reasonable" value="true"/>
            </plugin>
        </plugins>
    
    </configuration>
    

    database.properties
    ssmcrud是数据库的名字
    password后面的是密码,自行修改一下

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/ssmcrud?useSSL=true&useUnicode=true&characterEncoding=utf8
    jdbc.username=root
    jdbc.password=123456a
    

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <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:applicationContext.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>DispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
        <!--encodingFilter-->
        <filter>
            <filter-name>encodingFilter</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>
        </filter>
        <filter-mapping>
            <filter-name>encodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
        <!--Session过期时间-->
        <session-config>
            <session-timeout>15</session-timeout>
        </session-config>
    </web-app>
    

    大部分的配置都放到了applicationContext中,如果需要,mybatis-config里面可以什么都不放,只留头文件,其他的都在applicationContext里面配置

    • pom里面一定要配置资源过滤,不然xml等文件打包不出来,一定报错!*
    • dao层存放接口,service放置页面,impl为实现类,主要还是controller层进行调用,filter和utils按需开发

    项目导入时,需要自行改成自己的jdk以及修复models
    上图:
    第一步:
    在这里插入图片描述
    第二步:
    在这里插入图片描述
    第三步:
    在这里插入图片描述
    第四步:
    在这里插入图片描述
    第五步:
    在这里插入图片描述
    在这里插入图片描述

    结束语

    保存,然后直接点击绿色的运行即可。

    包含这么清楚的注释的架构不易,且用且珍惜哦
    前端页面,后端逻辑代码,以及用到的资源都放到压缩包里面了
    复习和学习的首选哦
    数据库一起打包啦
    链接上不限速的蓝奏云啦~

    点我下载
    https://www.lanzous.com/iLTSSkr7n0h

  • 相关阅读:
    deeplearning.ai 卷积神经网络 Week 1 卷积神经网络
    deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II
    deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I
    deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
    deeplearning.ai 改善深层神经网络 week2 优化算法
    deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
    cs231n spring 2017 lecture8 Deep Learning Networks
    cs231n spring 2017 lecture7 Training Neural Networks II
    cs231n spring 2017 lecture6 Training Neural Networks I
    cs231n spring 2017 Python/Numpy基础
  • 原文地址:https://www.cnblogs.com/yishuai/p/14331816.html
Copyright © 2011-2022 走看看