SSM从0基础到入门
ssm框架0基础入学
Marblue_
。
展开
-
Spring中 声明式事务管理
1事务概述1)在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。2)事务就是一组由于逻辑上紧密关联而合并成一个整体(工作单元)的多个数据库操作,这些操作要么都执行,要么都不执行。3)事务的四个关键属性(ACID)①原子性(atomicity):“原子”的本意是“不可再分”,事务的原子性表现为一个事务中涉及到的多个操作在逻辑上缺一不可。事务的原子性要求事务中的所有操作要么都执行,要么都不执行。②一致性(co原创 2020-09-27 11:49:50 · 533 阅读 · 0 评论 -
Spring中的JdbcTemplate
1. 概述为了使JDBC更加易于使用,Spring在JDBC API上定义了一个抽象层,以此建立一个JDBC存取框架。作为Spring JDBC框架的核心,JDBC模板的设计目的是为不同类型的JDBC操作提供模板方法,通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低。可以将Spring的JdbcTemplate看作是一个小型的轻量级持久化层框架,和我们之前使用过的DBUtils风格非常接近。2. 环境准备1 导入JAR包1)IOC容器所需要的JAR包commons-原创 2020-09-25 10:55:00 · 280 阅读 · 0 评论 -
以XML方式配置AOP切面
概述除了使用AspectJ注解声明切面,Spring也支持在bean配置文件中声明切面。这种声明是通过aop名称空间中的XML元素完成的。正常情况下,基于注解的声明要优先于基于XML的声明。通过AspectJ注解,切面可以与AspectJ兼容,而基于XML的配置则是Spring专有的。由于AspectJ得到越来越多的 AOP框架支持,所以以注解风格编写的切面将会有更多重用的机会。配置细节在bean配置文件中,所有的Spring AOP配置都必须定义在aop:config元素内部。对于每个切面而言,都原创 2020-09-24 21:35:43 · 333 阅读 · 0 评论 -
AOP中的通知
1.概述1)在具体的连接点上要执行的操作。2)一个切面可以包括一个或者多个通知。3)通知所使用的注解的值往往是切入点表达式。2.前置通知1)前置通知:在方法执行之前执行的通知2)使用@Before注解/** * @Before 将方法指定为前置通知 * 必须设置value,其值为切入点表达式 */ //@Before(value = "execution(public int com.atguigu.spring.day03_Spring.aop.原创 2020-09-23 21:22:51 · 510 阅读 · 0 评论 -
切入点表达式
1.作用通过表达式的方式定位一个或多个具体的连接点。2.语法细节1)切入点表达式的语法格式execution([权限修饰符] [返回值类型] [简单类名/全类名] [方法名]([参数列表]))2)举例说明表达式execution(* com.atguigu.spring.ArithmeticCalculator.*(…))含义ArithmeticCalculator接口中声明的所有方法。第一个※代表任意修饰符及任意返回值。第二个“*”代表任意方法。“…”匹配任意数原创 2020-09-23 20:34:19 · 2534 阅读 · 1 评论 -
动态代理
AOP前奏1.情景:数学计算器这里我们模拟一个计算器,添加日志功能。①执行加减乘除运算②日志:在程序执行期间追踪正在发生的活动2)常规实现存在的问题:①代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀。每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点。②代码分散: 以日志需求为例,只是为了满足这个单一需求,就不得不在多个模块(方法)里多次重复相同的日志代码。如果日志需求发生变化,必须修改所有模块。动态代理动态代理原理:代理设计模式的原理:使用一个原创 2020-09-23 19:51:43 · 128 阅读 · 0 评论 -
AOP概述与基本写法样例
AOP概述1)AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。面向对象 纵向继承机制面向切面 横向抽取机制2)AOP编程操作的主要对象是切面(aspect),而切面用于模块化横切关注点(公共功能)。3)在应用AOP编程时,仍然需要定义公共功能,但可以明确的定义这个功能应用在哪里,以什么方式应用,并且不必修改受影响的类。这样一来横切关注点就被模块化原创 2020-09-23 19:47:07 · 1239 阅读 · 0 评论 -
Spring中关于注解的组件装配
1)需求Controller组件中往往需要用到Service组件的实例,Service组件中往往需要用到 Repository组件的实例。Spring可以通过注解的方式帮我们实现属性的装配。2)实现依据在指定要扫描的包时,context:component-scan 元素会自动注册一个bean的后置处 理器:AutowiredAnnotationBeanPostProcessor的实例。该后置处理器可以自动装配标记 了@Autowired、@Resource或@Inject注解的属性。3..原创 2020-09-08 17:15:23 · 113 阅读 · 0 评论 -
Spring中通过注解配置bean
相对于XML方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件化开发的理念十分契合,是开发中常用的使用方式。使用注解标识组件1)普通组件:@Component标识一个受Spring IOC容器管理的组件2)持久化层组件:@Repository标识一个受Spring IOC容器管理的持久化层组件@Controller(value = "aaa")public class UserController { @Autowired private UserSer原创 2020-09-08 17:01:00 · 208 阅读 · 0 评论 -
自动装配与兼容性
自动装配的概念1)手动装配:以value或ref的方式明确指定属性值都是手动装配。2)自动装配:根据指定的装配规则,不需要明确指定,Spring自动将匹配的属性值注入bean中。写几个类方便后续的测试:public class Emp { private Integer eid; private String ename; private Car car; private Dept dept; public Integer getEid() {原创 2020-09-04 16:40:18 · 122 阅读 · 0 评论 -
Spring中引用外部资源文件
1.xml中配置属性当我们导入druid和mysql的资源jar包后可以直接配置数据库连接对象<?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.原创 2020-09-04 11:32:48 · 270 阅读 · 0 评论 -
Spring中bean的生命周期
1)Spring IOC容器可以管理bean的生命周期,Spring允许在bean生命周期内特定的时间点执行指定的任务。2)Spring IOC容器对bean的生命周期进行管理的过程:① 通过构造器或工厂方法创建bean实例② 为bean的属性设置值和对其他bean的引用③ 调用bean的初始化方法④ bean可以使用了⑤ 当容器关闭时,调用bean的销毁方法3)在配置bean时,通过init-method和destroy-method 属性为bean指定初始化和销毁方法这里写..原创 2020-09-03 17:30:38 · 166 阅读 · 0 评论 -
Spring中bean的作用域
作用域scope配置项作用域限定了Spring Bean的作用范围,在Spring配置文件定义Bean时,通过声明scope配置项,可以灵活定义Bean的作用范围。例如,当你希望每次IOC容器返回的Bean是同一个实例时,可以设置scope为singleton;当你希望每次IOC容器返回的Bean实例是一个新的实例时,可以设置scope为prototype。scope配置项有5个属性,用于描述不同的作用域。① singleton使用该属性定义Bean时,IOC容器仅创建一个Bean实例,IOC容器每原创 2020-09-03 10:54:19 · 218 阅读 · 0 评论 -
FactoryBean测试
Spring中有两种类型的bean,一种是普通bean,另一种是工厂bean,即FactoryBean。工厂bean跟普通bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂bean的getObject方法所返回的对象。工厂bean必须实现org.springframework.beans.factory.FactoryBean接口。这里我们写一个Car类用于测试:public class Car { private String brand; private Doubl原创 2020-08-20 21:55:22 · 223 阅读 · 0 评论 -
spring中xml里的集合属性
在Spring中可以通过一组内置的XML标签来配置集合属性,例如:< list>< map>和< set>。数组和List配置java.util.List类型的属性,需要指定< list>标签,在标签里包含一些元素。这些标签 可以通过< value>指定简单的常量值,通过< ref>指定对其他Bean的引用。通过< bean>指定内置bean定义。通过< null/>指定空元素。甚至可以内嵌其他集合。数组原创 2020-08-20 21:01:10 · 743 阅读 · 0 评论 -
Spring中在xml文件为对象赋值的几种方式
这里先写一个学生类进行实验:public class Student { private Integer id; private String name; private Integer age; private Long cellphone; public Student() { } public Student(Integer id, String name, Integer age, Long cellphone) { th原创 2020-08-19 10:54:33 · 1157 阅读 · 0 评论 -
Spring简单案例测试
1.搭建Spring运行时环境首先创建一个java项目,这里我用的是idea导入jar包①spring自身JAR包:spring-framework-4.0.0.RELEASE\libs目录下spring-beans-4.0.0.RELEASE.jarspring-context-4.0.0.RELE2ASE.jarspring-core-4.0.0.RELEASE.jarspring-expression-4.0.0.RELEASE.jar② commons-logging-1.1.1.j原创 2020-06-14 19:58:50 · 203 阅读 · 0 评论 -
Spring概述
Spring概述Spring是一个开源框架Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。Spring是一个IOC(DI)和AOP容器框架。Spring的优良特性① 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API② 依赖注入:DI——Dependency Injection,反转控制(IOC)最原创 2020-06-13 21:34:51 · 135 阅读 · 0 评论