Mybatis:是永久层的操作,是对Dao层的封装,简化sql语句的开发。
**spring:**没有真正意义的针对哪一个层,只是一种工厂开发模式。ioc是实现这种开发的思想,通过DI和注解实现,AOP是在ioc的思想上对业务逻辑层的处理。
SpringIOC:是把所有的对象通过反转思想,放到工厂中,要用的话从bean里取,加入到bean的方式有:构造方法注入,set注入,和注解。
SpringAOP:是一种对业务逻辑功能service的设计,他是一种面向切面编程的思想。底层是动态代理,通过动态代理把service层的原始业务和功能业务分开。通过切面类里的定义切点,切点绑定切面的方式为原始业务设置通知,完成功能业务。
SpringMVC:是spring的一个组成模块,用于界面层的处理,用以接收用户请求,显示处理结果。
动态代理:
1,JDK动态代理实现(基于接口)
2,CGlib动态代理实现(基于继承)
所谓的动态代理就是通过一个(中介)代理类,去实现不同的逻辑。
常用的依赖和配置文件
<?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>com.qf</groupId>
<artifactId>ssm-2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- //mybatis
spring-context
mybatis-spring
jdbc-mysql
druid
spring-jdbc
junit
lombok
log4j
aspectj
aop
-->
<dependency>
<!-- 日志依赖-->
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<!-- 分页依赖-->
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
<dependency>
<!-- mabatis的依赖-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<!-- 连接数据库的依赖-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--spring的核心依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<!--spring整合asprectJ的依赖,CGLIB-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<dependency>
<!-- 连接池的依赖,用以spring整合mybatis用-->
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<!--mybatis和spring的一个整合包,是mybatis写的
这个jar包中有一个SqlSessionFactoryBean的类
-->
<dependency>
<!-- Mybatis开发的用于生成sqlseeeionfactory对象的-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--spring对jdbc的支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<!--spring对事务的支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<!--spring对测试的支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<!--spring对测试的支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<dependency>
<!-- @Data生成pojo的依赖-->
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
<dependency>
<!-- 测试的依赖-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- 前端el表达式的依赖用以jsp渲染-->
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<!-- 也是件商品渲染的依赖-->
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>*.xml</include><!-- 默认(新添加自定义则失效) -->
<include>**/*.xml</include><!-- 新添加 */代表1级目录 **/代表多级目录 -->
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
</project>
log4j日志打印的配置文件
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
jdbc配置文件
#\u8FDE\u63A5\u8BBE\u7F6E
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///qf2002
jdbc.username=root
jdbc.password=1234
#<!-- \u521D\u59CB\u5316\u8FDE\u63A5,\u8FDE\u63A5\u6C60\u521D\u59CB\u5316\u7684\u65F6\u5019\u65B0\u5EFA\u4E8610\u4E2Acon\u653E\u5728\u6C60\u5B50\u4E2D -->
jdbc.initialSize=10
#\u6700\u5927\u8FDE\u63A5\u6570\u91CF \u5F53\u8D85\u8FC710\u4E2A\u88AB\u4F7F\u7528\u540E\uFF0C\u4ED6\u4F1A\u7EE7\u7EED\u7684\u5FD8\u6C60\u5B50\u4E2D\u52A0\u5165con\uFF0C\u6700\u591A\u603B\u517150
jdbc.maxActive=50
#<!-- \u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5982\u679C\u6C60\u5B50\u4E2D\u7684con\u7ECF\u5E38\u4E0D\u7528\uFF0C\u4ED6\u4F1A\u81EA\u52A8\u9500\u6BC15\u4E2A -->
jdbc.minIdle=5
#<!-- \u8D85\u65F6\u7B49\u5F85\u65F6\u95F4\u4EE5\u6BEB\u79D2\u4E3A\u5355\u4F4D 6000\u6BEB\u79D2/1000\u7B49\u4E8E60\u79D2 \u6700\u591A\u7B49\u5F855\u79D2\u83B7\u53D6\u8FDE\u63A5\uFF0C\u5982\u679C\u8D85\u8FC75\u79D2\uFF0C\u5219\u4E0D\u518D\u7B49\u5F85-->
jdbc.maxWait=5000