ssm简单笔记

SSM笔记-动态SQL SSM笔记-动态SQL,包括:if标签、where标签、trim标签、choose标签、set标签、foreach标签、内置参数、bind标签、sql标签 立即下载

SSM

Javaweb的三大组件:Servlet,Filter,Listener;

复习JavaWeb

filter流程

image-20210806085748742

Listener

八个:ServletRequest(2)、HttpSession(2)、ServletContext(2)

2:生命周期监听器,属性变化监听器

4(HttpSession):除了上面那两个外,还有额外的两个(活化钝化监听器、绑定解绑监听器)

掌握的监听器:

ServlertContextListener(生命周期):监听ServletContext的创建和销毁(监听服务器的启动和停止);服务器启动创建一个ServletContext对象,服务器停止,销毁创建的ServletContext对象;

ServletContext:

​ 1、一个web项目对应一个ServletContext,它代表web项目的信息

​ 2、还可以作为最大的域对象在整个项目的运行期间共享数据

监听器的使用方法:

​ 1.先实现对应的监听器接口

​ 2.去web.xml进行配置;注意:有两个Listener是JavaBean需要实现的接口,(HttpSessionActivitionListener,HttpSessionBindingListener)

AJAX和JSON

JSON:(js对象表法)是一种轻量级的数据交换格式(与xml相比较)

一个复杂的js对象

    var student = {
        lastName: "张山",
        age: 18,
        car: {pp: "baoma", price: "15555555555"},
        infos: [{bookName: "西游记", price: 19}, 18, true]
    };

如果服务器返回给浏览器的样子是js对象这个样子的,浏览器使用js解析就很方便;

JSON

 //json要求和js对象是一样的,只不过key必须是字符串
   //js对象在声明的时候是否加双引号是可以选择的
    var student2 = {
        "lastName": "张山",
        "age": 18
       
    };
    //JSON(js的内置对象)这个是js提供的将js对象转换成json(应该是js对象的字符串表示法)字符串
   var strjson= JSON.stringify(student2);
   alert(typeof strjson);
    alert(strjson);

两个重要的API:

​ 1、将js对象转换为JSON

JSON.stringify(js对象)

​ 2、将JSON对象转换成js’对象

JSON.parse(JSON对象);

AJAX

AJAX:synchronous Javascript And XML(异步JavaScript和XML)
AJAX:是一种无刷新页面与服务器的交互技术。(保持页面不刷新就能得到服务器的数据)

原来的交互:

1、发送请求

2、服务器收到请求,调用队对应的servlet进行处理;servlet处理完成之后会有响应信息生成;

3、浏览器收到了服务器响应的数据,把之前的页面清空,展示新的数据;(效果就是页面刷新)

现在的交互:(XmlHttpRequest对象)

1、XmlHttpRequest对象帮我们发送请求

2、服务器收到请求后,调用对应的servlet进行处理;servlet处理完成会有响应信息生成;

3、XmlHttpRequest对象收数据(浏览器就感受不到这个数据了;xml对象收到这个数据)

image-20210806185956945

将fJava中的Object对象转换成Json对象的包

代码演示:

 	 Map<String, Object> map = new HashMap<>();
        map.put("lastName","zs");
        map.put("age",18);
        //1、转成json
        Gson gson = new Gson();
        String str = gson.toJson(map);
        response.getWriter().write(str);

引入的依赖:(去maven仓库下载就可以了)

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.6</version>
</dependency>

改变了我们传统的交互反射光hi就

1、发请求;

2、服务器收到请求,处理请求经常要给页面携带数据。request.setAtteribute(“map”,map);转发到页面

3、浏览器收到页面数据,在页面中使用el表达式获取数据;

导致页面整个刷新,造成了很大的服务器负担;

只让服务器返回我们需要的部分数据即可;不用返回整个页面;xhr代替浏览器来接收响应,发送请求;利用dom增删给的方式改变页面的效果;

异步无刷新页面技术

异步:不会阻塞浏览器

同步:会阻塞浏览器;因为需要等到服务器处理完整个请求,完成响应后才能做其他事情

什么是ajax:

​ ajax就是xhr对象向服务器发送请求,并受到响应数据,利用dom增删改的方式改变页面效果

Ajax中get请求和post请求的用法是一样的,只是一个发送的是get请求一个发送的是post请求,区别是get请求时将数据封装在请求的?后面,而post请求是将数据封装在了请求体中

post请求封装的数据

image-20210807101446208

get请求封装数据

image-20210807101855937

IOC和DI

IOC:(Inversion(反转) Of Control)控制反转;

​ 控制:资源获取的方式;

​ 主动式:(要什么资源都自己创建即可)

BookServlet{
BookService bs= new BookService();
AirPlane ap=new AirPlane();
}

​ 被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置;

BookService{
	BookService bs;
	public void test01(){
	bs.checkout();
	}
}

容器:管理所有的组件(有功能的类)

假设,BookServlet受容器管理,BookService也受容器管理;容器可以自动的探查出那些组件(类)需要用到另一写组件(类)﹔容器帮我们创建BookService对象,并把BookService对象赋值过去;
容器:主动的new资源变为被动的接收咨源·

(容器)婚介所:主动获取变为被动接收;

DI(Dependency Injection)依赖注入;

​ 容器能知道哪个组件(类)运行的时候,需要另一个类(组件);容器通过反射的形式,将容器中准备好BookService对象注入(利用反射给属性赋值)到BookServce中


HelloWorld;(通过各种方式给容器中注册对象(类似于婚庆所的注册会员)),以前是自己new对象现在所有的对象都交给容器创建;给容器中注册组件

以后编写的流程;

HelloWorld

1、导包(4个jar包:spring-context、spring-core、spring-beans、spring-expression)

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.3.9</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.3.9</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.3.8</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.14.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>5.3.9</version>
    </dependency>


2、写配置(ioc.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--    注册一个person对象,Spring会自动创建一个Person对象-->
    <!--
    一个bean标签可以注册一个组件(对象、类)
    id:这个对象的唯一标识
    class:要写的注册的组件的全类名
    -->
    <bean id="person" class="com.pzx.spring.bean.Person">
        <!--  property 标签为对象的属性赋值
              name是用来指定属性名称,
              value是用来指定属性值
              -->
        <property name="lastName" value="张三"></property>
        <property name="age" value="18"></property>
        <property name="email" value="zs@guigu.com"></property>
        <property name="gender" value="男"></property>
    </bean>
</beans>

3、测试 (ClassPathXmlApplicationContext当前配置文件在ClassPath下)

@Test
public void test(){
    //ApplicationContext:表示ioc容器
    //当前应用的xml配置文件在内路径下
    //ClassPathXmlApplicationContext当前配置文件在ClassPath下
    //根据Spring的配置文件得到ioc容器对象
    ApplicationContext ioc = new ClassPathXmlApplicationContext("ioc.xml");
    Person person = ioc.getBean("person", Person.class);
    System.out.println(person);

}

//结果   Person{lastName='张三', age=18, gender='男', email='zs@guigu.com'}

HelloWorld的小总结

有几个小细节:(对象的创建都是通过反射来实现的)

1、ApplicationContext(IOC容器的接口)

2、给容器注册了一个组件;我们也从容器中按照id拿到了这个组件的对象?

  • 组件的创建工作是容器来替我们完成的
    * Person对象是什么时候创建好的呢?
    * 容器中对象的创建是在容器创建完成之后就已经创建好了;

3、同一个组件在ioc容器中是单实例的,容器启动完成就已经创建好了

4、容器中如果没有这个组件,获取组件会报异常

 * org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'person3' available

5、ioc容器在创建这个组件对象时,(property)会利用setter方法为JavaBean的属性赋值

6、JavaBean的属性名使用什么决定的?getter/setter方法,属性名是去掉set,后面那串字母首字母小写

 * 注意不要随便该getter/setter,所有的getter/setter都要自动生成

泛型依赖注入的原理

image-20210810195813570

将数组转换成集合

Arrays.asList(数组名)

AOP

image-20210812165605661

如何将Spring中的一个类定义为一个切面类

将Spring中的一个类定义为切面类

​ 在类上加上@Aspect 和 @Component这两个注解
​ 其中@Aspect的作用是将这个类声明为一个切面类
​ @Component这个注解的作用是表示将这个类注入到IOC容器中

SpringAOP五大通知注解

在以下方法上面加上这些注解之后,还得在注解里面加上execution()

  • @Before:在目标方法执行之前运行 前置通知

  • @After:在目标方法执行完成之后运行 后置通知

  • @AfterReturning:在目标方法正常返回后 返回通知 这个注解里面可能还要加上

     @AfterReturning(value = "hahaMyPoint()" ,returning="result")
    @AfterReturning 这个注解里面可能还要加上returning的值用来表明返回的执行结果
    
  • @AfterThrowing:在目标方法抛出异常后执行 异常通知

    @AfterThrowing(value = "hahaMyPoint()",throwing="exception")
    这个注解也有可能要加上throwing,用来表示返回的异常信息
    

代码演示

    /**
     * 细节四:我们可以在通知方法运行的时候,拿到目标方法的详细信息学;
     * 1)只需要为通知方法的参数列表上写一个参数:
     *              JoinPoint joinPoint:封装了目标方法的详细信息
     *
     * 2)、告诉Spring哪个参数是用来接收异常的
     *
     *
     * 3)、Exception exception:指定通知方法可以接收哪些异常(一般都是往大的方面写)
     *
     * 有点像ajax请求
     * ajax.post(url,function(abc){
     * alert(abc);
     * })
     *
     */
    //想在目标方法出现异常后执行
//    @AfterThrowing(value = "execution(public int com.pzx2.impl.MyMathCalculator.*(int ,int ))",throwing="exception")
    @AfterThrowing(value = "hahaMyPoint()",throwing="exception")
    public static void logException(JoinPoint joinPoint , Exception exception) {

        Signature signature = joinPoint.getSignature();
        String name = signature.getName();
        System.out.println("[LogUtils-异常]【"+name+"】方法出现异常了,异常信息是"+exception+ ":已经通知测试小组进行排查");

    }
  • @Around:环绕 (这个功能最强大) 环绕通知

四个通知方法的执行顺序

 try {
       @Before
       method.invoke(obj,args);
       @AfterReturning
            } catch (Exception e) {
            @AfterThrowing
        } finally {
        @After
        }

切入点表达式的几种常见的写法

切入点表达式的固定写法
固定格式:execution(访问权限符 返回值类型  方法的全签名(参数类型))

    /**
     * 切入点表达式的写法;
     * 固定格式:execution(访问权限符 返回值类型  方法的全签名(参数类型))
     * 通配符:
     *         *  :1)、匹配一个或者多个字符:execution(public int com.pzx2.impl.MyMath*.*(int ,int ))
     *             2)、匹配任意一个参数:第一个是int类型,第二个参数是任意类型;(一共匹配两个类型)
     *             execution(public int com.pzx2.impl.MyMathCalculator.*(int ,* ))
     *            3)、只能匹配一层路径
     *            4)、权限位置的*不能表示任意的权限值,权限位置不写,就带表任意的访问修饰符(public【是可选项的】)
     *
     *
     *       .. : 1)、匹配任意多个参数
     *              execution(public int com.pzx2.impl.MyMathCalculator.*(..))
     *             2)匹配任意多层路径
     *             execution(public int com.pzx2.impl..MyMathCalculator.*(..))
     *	
     * 记住两种:
     * 最精确的写法:execution(public int com.pzx2.impl.MyMathCalculator.add(int,int))
     * 最模糊的:execution(* *.*(..)):千万别写
     *
     * 还可以使用下面的表达式
     * "&&"、"||"、"!"
     * MyMathCalculator.add(int , double)
     * 切入点表达式要满足下面两个表达式才行
     * execution(public int com.pzx..MyMath*.*(..))  &&  execution(*  *.*(int,int))
     *||:满足一个表达式即可
     *
     *
     */

将切入点表达式抽取出来可重复使用(同一个类里面的引用直接用方法名加上参数列表即可,而不是同一个类之间的引用的话要用全类名)

 /** 抽取可重用的切入点表达式;
     * 1、随便声明一个没有实现的返回void的空方法
     * 2、给方法上标注@Pointcut
     */
     
    @Pointcut("execution(* com.pzx2.impl..MyMathCalculator.*(..))")
    public void hahaMyPoint(){

    }

环绕通知代码演示

   /**
     * @Around :环绕通知是Spring中最强大的通知方法
     * @Around:环绕动态代理;
     *
     * try{
     *          //前置通知
     *          method.invoke(obj,args);
     *          //返回通知
     *   }catch(Exception e){
     *              //异常通知
     *   }finally{
     *          //后置通知
     *   }
     *
     *  四合一就是环绕通知
     *  环绕通知中有一个参数  :  ProceedingJoinPoint pjp
     *
     * 环绕通知:是优先于普通通知执行,执行顺序;
     * [普通方法执行]
     * {
     *      try{
     *             环绕前置
     *            环绕执行:目标方法执行
     *            环绕返回
     *      }catch(){
     *            环绕出现异常
     *      }finally{
     *            环绕后置
     *      }
     *
     *
     *
     *
     * }
     * [普通后置]
     * [普通方法返回 / 方法异常]
     *
     *
     *  新的顺序;
     *          注意:这个是Spring4的运行顺序   环绕前置-->普通方法前置-->目标方法执行-->环绕正常返回/出现异常-->环绕后置-->普通后置-->普通返回或者异常
     *             Spring5的顺序不同
     *
     *
     *
     */


    @Around("hahaMyPoint()")
    public Object myAround(ProceedingJoinPoint pjp) {
        Object proceed=null;
        Signature signature = pjp.getSignature();
        String name = signature.getName();
        try {
            Object[] args = pjp.getArgs();
            //利用反射推进目标方法即可,就是method.invoke(obj,args);
            //Before
            System.out.println("【环绕前置】【" + name + "方法开始】");
            proceed = pjp.proceed(args);
            //@AfterReturning
            System.out.println("【环绕返回通知】【"+name+"方法返回,返回值"+proceed+"】");

        } catch (Throwable throwable) {
            //@AfterThrowing
             System.out.println("【环绕方法出现异常】【" + name + "】方法出现异常,异常原因:" + throwable);
                //为了让外界知道这个原因,这个异常一定要抛出去
            throw  new RuntimeException(throwable);

        } finally {
//            @After()
            System.out.println("【环绕后置通知】 【" + name + "】方法结束");


        }

        //反射调用后,返回值一定也返回出去
        return proceed;


    }


当普通方法与环绕方法一起执行的时候的方法执行顺序

Spring5的执行顺序

环绕前置–>普通方法前置–>目标方法执行–>普通正常返回/出现异常–>普通后置–>环绕正常返回/出现异常–>环绕后置

image-20210816101059968

多切面执行顺序

image-20210816101158530

image-20210816101224967

xml格式配置通知方法

  <!--  需要AOP名称空间  -->
    <aop:config>

        <!--    声明一个全局的切入点表达式    -->
        <aop:pointcut id="globalPoint" expression="execution(* com.xml.impl.*.*(..))"/>

        <!--    指定切面  @Aspect   -->
                <aop:aspect ref="logUtils">
                    <!--    配置哪个方法是前置通知;method指定方法名
                        logStart@Before("切入点表达式")
                    -->
                    <!--    这个表达式只能当前切面能用        -->
                    <aop:pointcut id="mypoint" expression="execution(* com.xml.impl.*.*(..))"/>
                    <aop:before method="logStart" pointcut-ref="mypoint"/>
                    <aop:after-returning method="logReturn" returning="result" pointcut-ref="mypoint"/>
                    <aop:after-throwing method="logException" throwing="exception" pointcut-ref="mypoint"></aop:after-throwing>
                    <aop:after method="logEnd" pointcut-ref="mypoint"></aop:after>
                    <aop:around method="myAround" pointcut-ref="mypoint"></aop:around>
                </aop:aspect>
        <aop:aspect ref="validateApsect">
            <aop:before method="logStart" pointcut-ref="globalPoint"></aop:before>
            <aop:after-returning method="logReturn" returning="result" pointcut-ref="globalPoint"></aop:after-returning>
            <aop:after-throwing method="logException" throwing="exception"
                                pointcut-ref="globalPoint"></aop:after-throwing>
            <aop:after method="logEnd" pointcut-ref="globalPoint"></aop:after>
        </aop:aspect>

    </aop:config>

高版本的tomcat,在SpringMVC使用DELETE、PUT请求时爆错405

image-20210818103218030

解决办法,在jsp页面上加上

<%@ page contentType="text/html;charset=UTF-8" language="java"
isErrorPage="true" 
%> 其实主要是加上isErrorPage="true" ,告诉tomcat可能会报错

ModelAttribute原理

image-20210819225004017

SpringMVC的运行流程

image-20210828203135169

SpringMVC和Spring进行整合时,Spring的Service不能自动装配SpringMVC的Controller是因为在Spring中默认讲Spring作为父容器,SpringMVC作为子容器。子容器可以拿父容器的东西,父容器不能拿子容器

image-20210829100815284

mybatis中的知识点的简单记录

https://199604.com/709

mybatis中一级缓存和二级缓存的示意图

image-20210906104506413

Java的SSM框架最强整合的笔记 Java的SSM框架最强整合的笔记,总共三十三个步骤,跟着每 个步骤走,一下子搭建成功。 立即下载

相关推荐

四旋翼黑科技揭秘:如何利用PX4隐藏的角加速度数据提升控制性能

本文深入探讨了如何利用PX4飞控中隐藏的角加速度数据,结合增量非线性动态逆(INDI)控制方法,显著提升四旋翼无人机的控制性能。通过实战教程,指导开发者从数据订阅、INDI原理到代码实现,构建响应更快、鲁棒性更强的控制回路,有效应对突风与快速机动。

lake5的博客 719

SSM框架学习笔记

SSM框架自学笔记

MinQo的博客 654

评分卡建模学习(一)————数据预处理part.3

目录六、数据处理的思路及代码(一)对缺失值的处理:在我这个数据预处理的part.1板块(二)对异常值的处理:在我这个数据预处理的part.2板块(三)数据归一化、标准化:在我这个数据预处理的part.2板块(四)非结构化数据转变+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++———————————————————————————————————————————++++++++++++++++++++++++++

Morven_dai的博客 898

Java - SSM

SSM 复习知识点

sunyoona的博客 2592

艾德克斯电子负载IT8510维修

2年前从朋友那收了这台艾德克斯电子负载,收来的时候上面的编码器就不好用,就是旋转的时候一会增加一会减小这种现象,不过其他功能都是正常的,自己也就将就用这。直到昨天,电子负载开机发现空载的时候电压不是0,开始有mV级的跳动,心想这个不正常。又测试了一下恒流功能,已经不能正常工作了。

mainbanp 4651

线性模型:AR、MA、ARMA、ARMAX、ARX、ARARMAX、OE、BJ等

线性模型:AR、MA、ARMA、ARMAX、ARX、ARARMAX、OE、BJ等

zephyr_wang的博客 1万+

【尚硅谷】SSM框架之SSM学习笔记

【尚硅谷】SSM框架全套教程,MyBatis+Spring+SpringMVC+SSM整合一套通关笔记及代码

幸运是努力好久发出的光!! 1万+

Cadence psspxf实战:手把手教你仿真250MHz环形VCO的电源抑制比(附Verilog代码)

本文详细介绍了使用Cadence psspxf仿真器对250MHz环形VCO的电源抑制比(PSRR)进行仿真的全流程。从环形VCO的设计原理、Verilog代码实现,到Cadence环境配置、仿真参数设置,再到结果分析与优化技巧,提供了完整的实战指南。特别适合电路设计工程师学习如何评估和优化VCO的抗电源噪声能力。

weixin_42567752的博客 414

ssm笔记

初始化容器1.创建对象(内存分配)2.执行构造方法3.执行属性注入4.执行bean初始化方法使用bean1.执行业务操作关闭/销毁容器1.执行bean销毁方法,可以是ClassPathXmlApplicationContext接口下的colse()方法或者registerShutdownHook()方法使用@Component定义bean核心配置文件中通过组件扫描加载beanSpring提供@Component注解的三个衍生注解。

weixin_52234593的博客 416

【笔记】1.1 拉伸力-伸长(延伸)曲线和应力-应变曲线

过了B点后,由于颈缩导致的截面半径迅速减小,导致真应力迅速上升,切线斜率明显提高。假设试样原长为ε,在力的作用下伸长了dε,那么根据应变的定义,瞬时的应变为dε/ε,总的应变为瞬时应变的累计,假设在瞬时的条件下,试样受载荷变化量为 ΔF ,变化的截面积为 ΔA ,而且ΔA→0,那么瞬时的。由于原始的截面积和原始的标距长度为常数,故得到的曲线长相和拉伸力-伸长(延伸)曲线没啥区别。因为用的都是原始的截面积和原始的标距长度,故称为公称应力和公称应变。如果拉伸力→应力,伸长长度→应变,就会得到应力-应变曲线。

m0_73676887的博客 5270

复现报告:《多回路人机控制系统仿真及II型PIO分析》方法复现与代码实现

本文复现了谭文倩硕士论文《多回路人机控制系统仿真及II型PIO分析》中的关键方法,重点实现了频域驾驶员模型辨识和参数灵敏度分析。通过数字化提取论文图表数据,构建了结构驾驶员模型传递函数,并验证了参数变化对系统特性的影响。采用MATLAB实现了描述函数计算、模型参数辨识和灵敏度分析算法,为后续神经网络模型辨识和II型PIO研究奠定了基础。由于缺乏原始实验数据,部分结果通过数值模拟获得,但仍有效重现了论文的核心分析方法。~~~~~

huanghm88的专栏 175

SSM 学习笔记

添加配置文件信息

ttthe_shy_的博客 2897

YOLO26原创自研: 魔改Bottleneck,具备多尺度和特征通道融合的结构

魔改Bottleneck,具备多尺度和特征通道融合的结构,该模型在检测准确性方面都取得了良好的效果,尤其在缺陷检测方向。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 317

实习笔记 —— SSM三个框架的整合 I (简单登录功能)

简单登录功能(账号密码输入错误后输出错误信息)

LGoGoGo的博客 508

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SSM简单整合笔记 实现查询功能

相关知识 Spring SpringMVC Mybatis的关系 所需文件以及整体结构 配置流程: 首先新建maven工程 选择从原型创建 webapp 1.配置pom.xml 主要是配置dependencies <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId&g

weixin_43644655的博客 1997

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

搭建简单SSM框架笔记

idea简单SSM的搭建 新建maven项目并添加web依赖 修改pom文件添加相关依赖 <?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://mave.

qq_23282331的博客 161

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

简单理解SSM框架【简笔记】

可以开发一个注解的Spring MVC项目,Spring MVC也是轻量级的框架,jar包很小,不依赖特定的接口和类;使用Spring可插入的MVC架构,从而在使用Spring进行Web开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用)、Struts 2(一般老项目使用)等等。总的来说,Spring Boot是一个强大而灵活的开发框架,它通过简化Spring应用程序的开发过程,使得开发者可以更加高效地构建高质量的应用程序。

Corrupt_jm的博客 776

SSM简单整合学习_笔记01

Spring+SpringMVC+Mybatis=SSM一、搭建整合SSM环境1、整合前思路、数据库准备、项目结构2、pom.xml文件中引入坐标依赖,简单解释各个依赖包3、domain实体类3、dao接口`@Repository`,先考虑单独mybatis是否能执行,后面再去整合4、service接口以及实现类`@Service`,先单独考虑spring执行是否成功,再去整合5、AccountController 控制类`@Controller`二、Spring框架代码的编写1. 搭建和测试Spring的

weixin_43271235的博客 275

SpringMVC笔记——SSM框架搭建简单实例

简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的。虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实例记录下来吧。 实例 第一步——导包 Spring框架包及其...

chuanke1344的博客 579

笔记:基于SSM的校园商铺(三)SSM框架的简单实例

本文章通过实现一个小功能来介绍Spring+SpringMVC+Mybatis的简单应用流程 关于SSM框架的配置这里就不提了,详情可看上一篇文章 流程介绍: 首先我们有一个地区实体类Area,包含的属性有地区id,地区名称,地区权重,地区创建时间和地区修改时间。 持久层:通过一个AreaDao接口与AreaDao.xml文件来从数据库中读取数据 业务层:通过一个AreaService接口与对应的实现类来调用持久层接口获取数据。 表现层:通过一个Controller类来接收请求,调用AreaService将

weixin_42395136的博客 527

SSM的简单笔记

Mybatis的步骤: 1、创建实体类; 2、创建mybatis-config.xml 3、创建MybatisUtil工具类。(调用SqlSessionFactory会话工厂,包装成私有的方法,通过类名.属性名调用静态方法) 4、测试 //1、创建SqlSessionFactory对象,也是单例模式的 //2、创建SqlSession对象 //3、调用session的方法  如果是增

Tidetiace的博客 267

简单ssm-crud项目笔记

实现简单的基于ssm的增删改查的一些总结

阿盐的博客 989

ssm项目_关于SSM项目进行简单集成redis笔记

redis是一款性能极高的I/O读写NoSql数据库,Nosql的含义就是不仅仅只是SQL,当然虽然它是数据库但是和我们平时常见的数据库SQL写法还是有相当大的区别,它的使用更像是在JAVA中对于对象(集合,数组等等)的操作,它和Memcached(MongoDB不太清楚,笔者暂时没有学习)很像,但是也有区别,其中最大的两个就是对于存储数据的类型和存储数据的大小,redis一个K/V结构是允许存储...

weixin_39626586的博客 103
上一篇: JavaWeb简单复习
下一篇: 配置Swagger2生成API接口文档
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值