![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring笔记
levonmo
关注后端, Java
展开
-
用AOP捕捉 Service中调用Dao的异常
PersonDao和PersonDaoImpl,并在PersonDaoImpl中制造异常public interface PersonDao { public void savePerson(); public void updatePerson();}public class PersonDaoImpl implements PersonDao { publi原创 2017-05-02 22:24:20 · 515 阅读 · 0 评论 -
spring的依赖注入 注解版
要说的都在注解里面了创建Person和Student类public class Person { /** * */ @Resource(name="student") //@Autowired //按照类型匹配,这是spring框架提供的一种注解方式 //@Qualifier("student") //按照spring容器中bean的id进行匹配,下原创 2017-04-27 18:51:26 · 203 阅读 · 0 评论 -
IOC和DI的体会
IOC和DI结合的真正的意义:java代码端完全的面向接口编程,完全不用关心真正是实现哪一个类,让各个模块之间进行了解耦举一个例子:在封装一个jdbc操作的时候可以用上这个思想public class CommonDao{ /* 在这里框架的开发者完全不用理会使用者用的是哪个实现 在这里dataSource是一个接口, 在使用者使用的时候,可以将真正的实现原创 2017-04-27 17:19:11 · 174 阅读 · 0 评论 -
spring容器的DI(依赖注入)xml版
DI:依赖注入:给属性赋值,spring提供了两种方法给属性赋值 1.set方法注入 2.构造器注入给属性赋值的操作就是装配写一个用来装配得Person.java类public class Person { private Long id; private String name; private Student student; private List lists原创 2017-04-27 14:55:30 · 232 阅读 · 0 评论 -
spring对象的单实例和多实例 懒加载
懒加载:spring默认是不启用 懒加载的,就是说spring在一加载配置文件的时候就实例化了该类,当属性lazy-init="true"的时候 启用懒加载,只有当调用getBean()方法才会实例化该类单实例和多实例:spring容器创建对象默认是单例的,无论调用几次getBean()都是在调用一个实例,当将属性设置为scope="prototype"是,spring原创 2017-04-26 12:20:25 · 2600 阅读 · 0 评论 -
spring HelloWorld!
spring会自动帮你管理你的类的生命周期创建第一个spring例子导入相关的jar包(spring.jar commons-logging.jar)(http://pan.baidu.com/s/1pKQYwqv)HelloWorld.javapublic class HelloWorld { public void hello(){ System原创 2017-04-26 11:00:00 · 195 阅读 · 0 评论 -
javabean转json (利用第三方jar包)
利用反射机制,将实体类中的属性进行反射为json形式的数据导入第三方jar包 (http://pan.baidu.com/s/1o88tHjG)编写一个实体类:City.javapackage com.mo.bean2json;public class City { private int id; private String name; public C原创 2017-04-25 20:11:54 · 756 阅读 · 0 评论 -
九大内置对象
JSP有九个内置对象(又叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使用JSP九大内置对象分为四类:输入输出对象:out对象、response对象、request对象通信控制对象:pageContext对象、session对象、application对象Servlet对象:page对象、config对象错误处理对象:exception对象九种对象简介:转载 2017-04-22 10:08:36 · 490 阅读 · 0 评论 -
Spring5:@Autowired注解、@Resource注解和@Service注解
什么是注解传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不转载 2017-04-22 10:06:06 · 258 阅读 · 0 评论 -
spring约束文件
<?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.springfram原创 2018-03-07 16:15:00 · 406 阅读 · 0 评论 -
使用Spring的JdbcTemplate进行CRUD
package com.mo;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.sp原创 2018-03-07 21:36:55 · 167 阅读 · 0 评论 -
静态代理与动态代理
静态代理:将一些需要一起协助才能完全任务的操作 放在一个类中,这个类就是静态代理举一个例子,例如:目标类与事务,需要在save()之前开启事物,在save()之后关闭事物,这个时候就需要一个代理类,将事务与目标类结合起来public class PersonDaoProxy implements PersonDao{ private PersonDao personDao;原创 2017-04-29 09:40:32 · 160 阅读 · 0 评论 -
springAOP的第一个例子
同样是拿一个Person类和Transaction类来举例子 导入相关的jar包Person.javapublic interface PersonDao { public void savePerson();}public class PersonDaoImpl implements PersonDao { public void savePerson()原创 2017-04-29 19:09:50 · 249 阅读 · 0 评论 -
springAOP的原理
原理:1.当spring容器启动的时候,加载两个bean,对两个bean进行实例化2.当spring容器解析配置文件到的时候3.把 切入点表达式解析出来,按照切入点表达式匹配sping容器中的bean4.如果匹配成功,则为该bean创建代理对象5.当客户端利用context.getBean()获取一个对象时,如果该对象存在代理对象,则返回代理对象,没有代理对象就返回本身原创 2017-04-29 19:41:35 · 263 阅读 · 0 评论 -
spring创建对象的方式(3种)
1.使用默认构造方法创建对象public class HelloWorld { public void hello(){ System.out.println("hello world"); }applicationContext.xml 测试类:/** * 默认的构造函数 */ @Test public void testHello(){ //加载配置原创 2017-04-26 11:49:36 · 524 阅读 · 0 评论 -
spring容器的继承
先写两个java类,Person和Student,Student继承Personpublic class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}public原创 2017-04-27 17:54:18 · 341 阅读 · 1 评论 -
springAOP的概念
在这里引入SpringAOP的概念 还是拿上面的做例子:给一个目标类和一个事务 事务这个类就是一个 切面,事务里面的方法就是通知 客户端调用那个方法,那个方法就是 连接点 切入点:相当判断条件,判断语句就是切入点 形成代理对象的方法的过程就称为 织入 代理方法=目标方法+通知 AOP的意义:在开发的时候,各个切面和目标类是完全松耦原创 2017-04-29 19:06:34 · 209 阅读 · 0 评论 -
用springAOP解决权限问题
1.Service层public interface PersonService { void savePerson(); void updatePerson();}public class PersonServiceImpl implements PersonService { @PrivilegeInfo(name="savePerson") public void sav原创 2017-05-03 11:50:14 · 822 阅读 · 0 评论 -
spring与jdbc整合
导入相关的jar包PersonDao类继承JdbcDaoSupport,JdbcDaoSupport类可以获取JdbcTemplate模板,JdbcTemplate模板中可以获取与数据库相关的操作,例如execute(sql)等public class PersonDao extends JdbcDaoSupport{ public void savePerson(S原创 2017-05-03 22:06:42 · 157 阅读 · 0 评论 -
spring数据库的操作框架
原创 2017-05-03 21:55:01 · 258 阅读 · 0 评论 -
springAOP的注解版
还是之前事务的例子applicationContext.xml的配置文件,注意头的信息<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://w原创 2017-05-03 19:37:23 · 275 阅读 · 0 评论 -
用springAOP计算每一层方法执行的时间
用springAOP计算每一层方法调用的时间 写一个三层架构出来Dao层public interface PersonDao { void savePerson();}public class PersonDaoImpl implements PersonDao { public void savePerson(){ try { Threa原创 2017-05-03 11:53:56 · 1139 阅读 · 0 评论 -
springAOP的各种通知
切面及切面的目标方法package com.mo.transaction;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;public class Transaction { /** * 前置通知 * 在目标方法执行之前执行 * 参数:连接点,可原创 2017-05-02 00:16:33 · 224 阅读 · 0 评论 -
解决重复提交表单
在前端代码写一个随机数出来,把这个随机数放在两个地方,一个是session域对象中,一个是表单的隐藏域中。传到后台进行比对,根据这两个值是不是一致,一致的话不是表单重复提交,不一致就是表单重复提交。注意:当判断到是一致的时候要把session中的随机数清除<% String stoken = UUID.randomUUID().toString();//生成唯一的令牌 re原创 2017-04-30 02:01:26 · 254 阅读 · 0 评论 -
Spring声明式事务
<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:a原创 2018-03-08 13:53:46 · 111 阅读 · 0 评论