MyBatis从入门到精通(第9章):Spring集成MyBatis(上)

Spring是一个为了解决企业级Web应用开发过程中面临的复杂性,而被创建的一个非常流行的轻量级框架。

mybatis-spring  可以帮助我们将MyBatis代码无缝整合到Spring中。使用这个类库中的类,Spring将会加载必要的MyBatis工厂类和Session类。

MyBatis Spring Adapter项目地址为:  https://github.com/mybatis/spring

master (2.0.x) - Support for Java 8, Spring 5

9.1  创建基本的Maven Web项目

下面开始创建一个空的Web项目。

首先,按照操作步骤创建一个基本的Maven项目,直到添加完所有基础依赖后,再按照下面的步骤进行操作。

1. 在pom.xml中添加 packaging配置 

在Maven的pom.xml中,packaging默认的打包方式为jar,即普通的Java项目会被打包成.jar文件。

当我们将packaging设置为war时,就变成了一个Web项目,项目会被打包成.war文件。

<?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.bjut.mybatis</groupId>
<artifactId>day01_09mybatis-spring</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

  2. 增加Web基本目录和配置

完成上述配置后,Maven项目就变成了Web项目,但是项目中还缺少Web项目必要的目录和配置文件。

在 src/main 目录下新建 webapp 目录(文件夹),然后在 webapp目录中创建 WEB-INF目录,

最后在 WEB-INF 目录中添加 web.xml 配置文件, web.xml配置文件如下。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

3. 在pom.xml中添加Web相关依赖 

  添加基础依赖

    <properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
    <build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>

Web相关依赖

        <!--web-->
<!--支持 Servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>.1.0</version>
<scope>provided</scope>
</dependency>
<!--支持 JSP-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!--支持 JSTL-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

通常Web容器都会自带 servlet-api 和 jsp-api 的jar包,为了避免jar包重复引起错误,需要将这两个依赖坐标的 scope 配置为provided

在一般的以JSP作为视图的项目中,使用 jstl可以在视图中处理复杂的逻辑,所以一般的Web项目中都会添加jstl依赖。

  4. 添加一个简单页面  index.jsp 

  在webapp目录中新建 JSP页面,文件名为 index.jsp ,文件内容如下。

<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF8" pageEncoding="UTF8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF8">
<title>Index</title>
</head>
<body>
<p>
Hello Web!
</p>
<p>
<%
Date now = new Date();
%> 服务器时间:<fmt:formatDate value="<%=now%>" pattern="yyyy-MM-dd HH:mm:ss"/>
</p>
</body>
</html>

完成上面4步后,一个基本的 Maven Web项目就完成了。

接下来部署这个Web项目并查看效果。

JDK环境:  jdk1.8.0_211

Web容器: Tomcat 8.5.43

IDE环境:   IntelliJ IDEA 2018.3.6

这里可以参考黑马程序员2018年录制的视频课:  javaweb部分\2-8Tomcat\第3节 tomcat_部署项目

  07_tomcat_部署项目的方式  、09_tomcat_与IDEA集成&创建web项目 、08_tomcat_动态java项目的目录结构

选中小锤子图标右侧的 Tomcat 8.5.43  选项卡后,再点击debug小虫子按钮左侧的 运行 按钮启动。

9.2  集成Spring和Spring MVC

为了方便控制层的开发还会集成最流行的 Spring MVC ,

集成Spring和Spring MVC 的步骤如下。

1. 添加  spring-framework-bom  用于管理Spring依赖

  在pom.xml文件中的dependencies后面添加如下配置

  

    <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.0.15.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

为了避免使用不同版本的Spring组件导致意外情况发生,可以使用
spring-framework-bom 。 添加 spring-framework-bom 后 , 在使用 Spring 依赖时就不需要再配置每
个依赖的版本号了,Spring 组件的版本 由 spring-framework-bom 统一管理 。 可以很方便地升级Spring的版本。

  2. 添加Spring依赖

    下面这些依赖是集成Spring时的常用依赖,各个依赖的作用可以参考注释 内容 。

        <!--Spring 上下文,核心依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<!--Spring JDBC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<!--Spring 事务-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<!--Spring 面向切面编程-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<!--spring-aop 依赖-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>

3. 添加 Spring MVC 依赖

  

<!--Spring Web 核心-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!--Spring MVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<!--spring mvc-json依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.3</version>
</dependency>

前两个依赖为 SpringMVC 必备的依赖, 后面的 jackson-databind 是 SpringMVC 转换为 JSON
时需要使用的依赖。 
  4. 添加Spring XML配置文件

在 src/main/resources 中新增  applicationContext.xml 文件,内容如下。

    base-package 属性来设置要自动扫描类的包名,包名中的*匹配 0 或者任意数量的字符。

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
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.bjut.mybatis.*.service.impl"/> <bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis2019 ?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean> </beans>

注意:自动扫描包配置,原书此处忘记添加9.2小节测试必须用到的一行代码如下:

    <context:component-scan base-package="cn.bjut.mybatis.*.controller"/>

  5. 添加Spring MVC 的配置文件

  在 src/main/resources 中新增 mybatis-servlet.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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <mvc:annotation-driven/> <mvc:resources mapping="/static/**" location="static/"/> <context:component-scan base-package="cn.bjut.mybatis.*.controller"/> <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> </beans>

这是一个最简单的配置,各项配置简单说明如下。

mvc:annotation-driven  启用Controller注解支持。

mvc:resources 配置了一个简单的静态资源映射规则。

context:component -scan  扫描controller包下的类。

InternalResourceViewResolver  将视图名映射为 URL文件。

  6. 配置web.xml 

  集成Spring和Spring MVC后,需要在web.xml中进行相应的配置。

  对于Spring来说,需要增加如下配置。

 

    <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

这个配置用于在 Web 容器启动时根据 contextConfigLocation 配置的路径读取 Spring
的配置文件,然后启动 Spring。

针对 Spring MVC,需要增加如下配置。 

  

    <servlet>
<servlet-name>mybatis</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mybatis-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>mybatis</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<!--为了避免编码不一致,通常还需要增加如下的编码过滤器配置。-->
   <filter>
<filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

结合淘淘商城那个项目练习的注释给出最终的 web.xml配置代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!--对于Spring来说,需要增加如下配置。-->
<!-- 加载Spring容器bean.xml配置文件,修改通配符 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!--针对Spring MVC,需要增加如下配置-->
<!-- Spring MVC的前端控制器 -->
<servlet>
<servlet-name>mybatis</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation,
Spring MVC的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml"-->
<param-value>classpath:mybatis-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>mybatis</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!--为了避免编码不一致,通常还需要增加如下的编码过滤器配置。-->
<!-- 解决post乱码 -->
<filter>
<filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

注意:  applicationContext.xml  被我放到了resources/spring目录下测试运行效果。XML的配置还支持如下这种带*通配符的呢:

       classpath:spring/applicationContext-*.xml

7. 增加一个简单的 Controller示例

将 index.jsp 移动到 src/main/webapp/WEB-INF/jsp 目录中。再对index.jsp页面中的body部分做如下修改。

<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF8" pageEncoding="UTF8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF8">
<title>Index</title>
</head>
<body>
<p>
Hello Spring MVC!
</p>
<p>
服务器时间:<fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss"/>
</p>
</body>
</html>

增加一个package包:cn.bjut.mybatis.web.controller

然后新建IndexController类,该类的代码如下。

package cn.bjut.mybatis.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import java.util.Date; @Controller
public class IndexController { @RequestMapping(value = {"index"})
public ModelAndView dicts(){
//创建一个模型视图对象
ModelAndView mav = new ModelAndView();
//获取到查询的数据对象
Date date = new Date();
//将数据放置到ModelAndView的实例化对象中,第二个参数可以是任何java类型
mav.addObject("now",date ) ;
//放入jsp路径
mav.setViewName("index");
//返回ModelAndView对象mav
return mav;
}
}

经过 以上这么多步的操作后 , 基本的 Spring 和 Spring MVC 就集成完了。重启 Tomcat 然后

访问地址 http://localhost:8080/day01/index ,浏览器就会显示内容 。

ModelAndView的实例是需要我们手动new的,而且ModelAndView可以自己寻址,只需要return 返回其对象即可。

注意: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

解决: 此信息为spring和jackson相关版本不兼容,这个项目使用的是Spring5.0.15版本,把本地jsckson版本升到2.9.9版本即可。

基于springboot 2.1.8版本自动配置的兼容版本信息如上图所示。

附录:原书本章节中并未介绍spring管理事务AOP相关的配置内容, applicationContext.xml 的完整代码如下。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
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.bjut.mybatis.*.service.impl"/> <bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis ?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations">
<array>
<value>classpath:cn/bjut/mybatis/**/mapper/*.xml</value>
</array>
</property>
<property name="typeAliasesPackage" value="cn.mybatis.web.model"/>
</bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="addToConfig" value="true"/>
<property name="basePackage" value="cn.bjut.mybatis.**.mapper"/>
</bean> <aop:aspectj-autoproxy/> <aop:config>
<aop:pointcut id="appService" expression="execution(* cn.bjut.mybatis.*.service..*Service*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="appService"/>
</aop:config> <tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="select*" read-only="true"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="get*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>

spring框架的AOP配置内容详解,请见我的CSDN博客。

04 Spring: 10.Spring中事务控制(上)

04 Spring: 10.Spring中事务控制(中)

================

end

MyBatis从入门到精通(第9章):Spring集成MyBatis(上)的更多相关文章

  1. MyBatis从入门到精通(第5章):5.4 Example 介绍

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.Eclipse Version: 2019-12 M2 (4.14.0) MyBatis从入门到精通(第5章):MyBatis代码 ...

  2. MyBatis从入门到精通(第9章):Spring集成MyBatis(下)

    MyBatis从入门到精通(第9章):Spring集成MyBatis(下) springmvc执行流程原理 mybatis-spring  可以帮助我们将MyBatis代码无缝整合到Spring中.使 ...

  3. MyBatis从入门到精通(第9章):Spring集成MyBatis(中)

    MyBatis从入门到精通(第9章):Spring集成MyBatis(中) 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.应该将应用自身的设计和具体 ...

  4. MyBatis从入门到精通(第5章):MyBatis代码生成器

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.Eclipse Version: 2019-12 M2 (4.14.0) MyBatis从入门到精通(第5章):MyBatis代码 ...

  5. MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.1高级结果映射之一对一映射

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.2.4 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...

  6. MyBatis从入门到精通(第3章):MyBatis注解方式的基本使用

    MyBatis 注解方式就是将 SQL 语句直接写在DAO层的接口上. 在黑马录制的2018年双元视频课:\08 SSM整合案例[企业权限管理系统]\07.订单操作  有使用MyBatis注解进行多表 ...

  7. MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.2高级结果映射之一对多映射

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.3.1 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...

  8. MyBatis从入门到精通(第4章):MyBatis动态SQL【foreach、bind、OGNL用法】

    (第4章):MyBatis动态SQL[foreach.bind.OGNL用法] 4.4 foreach 用法 SQL 语句中有时会使用 IN 关键字,例如 id in (1,2,3).可以使用 ${i ...

  9. MyBatis从入门到精通(第4章):MyBatis动态SQL【if、choose 和 where、set、trim】

    (第4章):MyBatis动态SQL[if.choose 和 where.set.trim] MyBatis 的强大特性之一便是它的动态 SQL.MyBatis 3.4.6版本采用了功能强大的OGNL ...

随机推荐

  1. 如何安装Anaconda

    如何安装Anaconda Python作为一门易读.易维护的语言,在工作和学习中应用广泛,被大量用户所欢迎.本文主要给大家介绍一下Anaconda 步骤 1 Anaconda在官网就可以下载,网址:h ...

  2. yagmail四行代码发送邮件

    yagmail四行代码发送邮件 import yagmail # 链接邮箱服务器 yag = yagmail.SMTP(user="xxxx@163.com", password= ...

  3. WIN10怎么查看端口,并杀死进程

    在命令行执行一下命令 netstat -ano | findstr "

  4. Spring(5) -(14) pointcut 语法

    AOP的规范本应该由SUM公司提出,但是被AOP联盟捷足先登.AOP联盟指定AOP规范,首先就要解决一个问题,怎么表示切入点,也就是在哪些方法上增强(where) AspectJ 是一个面向切面的框架 ...

  5. 文献及代码阅读报告 - SS-LSTM:A Hierarchical LSTM Model for Pedestrian Trajectory Prediction

    概览 简述 SS-LSTM全称Social-Scene-LSTM,是一种分层的LSTM模型,在已有的考虑相邻路人之间影响的Social-LSTM模型之上额外增加考虑了行人背景的因素.SS-LSTM架构 ...

  6. HDU-1114 完全背包+恰好装满问题

    B - Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Subm ...

  7. Essay写作“短路”怎么办?

    有些留学生在完成essay写作过程中可能会短路,写着写着不知道自己在写什么,或者是直接动不了笔了,这种情况下应该怎么办呢?下面Australiaway小编就跟同学们分享一些比较有用的方法,希望可以帮到 ...

  8. spring boot 异常(exception)处理

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  9. Windows桌面图标不见了,可能是结束了explorer.exe进程导致

    Windows桌面图标不见了,怎么办?那么可能是你关掉了explorer.exe的进程. 解决办法: ① Ctrl+shift+delete打开任务管理器,查看进程是否有explorer.exe ② ...

  10. 常用sql语句(mysql测试)

    DB数据库,DatabaseDBMS数据库管理系统,DatabaMemanagmentSystemSQL结构化查询语言,structure Query Language 开启服务net start m ...