spring
@Hmily@
将来的你,一定会感激现在拼搏的自己
展开
-
获取Spring容器上下文
1、web.xml必须配置ContextLoaderListener监听器以及Spring容器上下文配置文件:<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml&l...原创 2019-11-19 16:17:38 · 563 阅读 · 0 评论 -
mybatis学习四:mybatis之SqlSessionTemplate的使用
1、引入相关依赖:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.18.RELEASE</version></原创 2019-01-27 13:06:04 · 4027 阅读 · 0 评论 -
Shiro学习一:shiro基础教程
一、前言Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。二、介绍2.1 功能特点Shiro 包含 10 个内容,如下图:1) Authentication:身份认证/登录,验证用户是不是拥有相应的身份。2) Authorization:授权,即权限验证,验...原创 2019-02-28 22:16:41 · 345 阅读 · 0 评论 -
Java的三种代理模式
代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法。举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星...原创 2019-03-05 20:04:47 · 252 阅读 · 0 评论 -
spring整合mybatis时加上mybatis log日志输出sql语句
mybatis显示log可做如下配置:spring整合mybatis时可以省略配置文件,直接在bean里面配置:或者:原创 2019-06-18 11:25:26 · 6912 阅读 · 1 评论 -
Controller上添加@RequestMapping后导致静态资源文件404的解决办法
spring开发过程中,起初没有添加模块路径,开发中途需要在controller上添加模块路径,此时,就会导致页面的静态资源(js/img/css)等文件报404,因为路径不对了。原因是因为使用相对路径造成的,但此时页面有很多,不可能一个一个的去改。解决方法如下:1、保持页面不动:2、controller上添加对应模块路径,几级路径不限制:3、spring配置文件中配置路径映射...原创 2019-06-18 14:48:05 · 6382 阅读 · 5 评论 -
Spring单元测试
前言:Spring单元测试可以使用@AutoWired等注解方便注入Mapper或者Service,不需要new对象,大大提高了测试的效率。1、pom文件引入spring-test依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-...原创 2019-07-12 21:38:23 · 237 阅读 · 0 评论 -
@Repository注解的作用
@Repository和@Controller、@Service、@Component的作用差不多,都是把对象交给spring管理。@Repository用在持久层的接口上,这个注解是将接口的一个实现类交给spring管理。为什么有时候我们不用@Repository来注解接口,我们照样可以注入到这个接口的实现类呢?1、spring配置文件中配置了MapperScannerConfigure...原创 2019-07-16 10:35:55 · 144727 阅读 · 19 评论 -
IOC与DI的理解
1、IOC(控制反转)首先想说说IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,...原创 2019-07-16 14:16:46 · 236 阅读 · 0 评论 -
Spring加载Properties配置文件的几种方式
一:通过context:property-placeholder标签实现配置文件加载在spring的配置文件中添加如下声明<context:property-placeholder ignore-unresolvable="true" location="classpath:jdbc.properties"/>引用值时,注意使用$引用需要的值1.在datasource....原创 2019-07-25 17:38:06 · 308 阅读 · 0 评论 -
Ajax向后台发送数组等复杂参数时的解决方案
前言:在很多时候,前台传递的参数是数组,这时不好拼接成字符串的键值对参数,那可以按照如下方式解决:1、添加”traditional:true”参数和contentType: 'application/json;charset=UTF-8'traditional:是否使用传统的方式浅层序列化。contentType:"application/json":向后台发送数据的格式必须为json...原创 2019-08-03 10:43:32 · 931 阅读 · 0 评论 -
spring AOP中的@AfterThrowing处理异常与try...catch...的区别
spring AOP中的AfterThrowing增强处理可以对目标方法的异常进行处理,但这种处理与直接使用catch捕捉处理异常的方式不同,catch捕捉意味着能完全处理异常,即只要catch块本身不抛出新的异常,则被处理的异常不会往上级调用者进一步传播下去;但是如果使用了AfterThrowing增强处理用于对异常进行处理,处理后异常仍然会往上一级调用者传播,如果是在main中调用的目标方法,...原创 2019-08-09 14:14:55 · 6267 阅读 · 0 评论 -
SpringAOP理解
概述Spring的最终目的是简化应用开发。通俗的讲减少重复代码,少写代码达到相同的目的。面向切面编程(AOP, Aspect Oriented Programming)就是一种减重复代码方式。我们都知道JAVA是一门面向对象编程(OOP, Object Oriented Programming)语言,在java中将一个个功能模块抽象成一个个对象。这些对象通过一定的联系完成我们所看到的一个个应用...原创 2019-08-09 15:27:38 · 1631 阅读 · 0 评论 -
SpringAOP五种通知示例
0、切点:0.1:方法切点:@Pointcut(value="execution(* cn.xxx.ssm.ssmtemplate.service.*.*(..))")private void addLog1() {}@Pointcut(value="execution(* cn.xxx.ssm.ssmtemplate.service.*.*(..))&&args...原创 2019-08-09 16:57:05 · 399 阅读 · 0 评论 -
SpringAOP手写全局异常处理
1、使用@AfterThrowing异常通知:注:使用异常通知,不会完全处理异常,异常会向上继续传递给调用者。1.1自定义注解:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documentedpublic @interface ProcessException { Class<? exte...原创 2019-08-09 17:18:26 · 1346 阅读 · 1 评论 -
mybatis学习三:mybatis整合spring
1、引入mybatis、spring-webmvc、spring-jdbc、mybatis-spring以及相关数据库依赖:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> &l...原创 2019-01-27 12:34:34 · 133 阅读 · 0 评论 -
spring学习十五:使用SpringJdbc对数据库CURD操作
实体类:public class User { private Integer id; private String name; private String username; private String password; private String gender; public Integer getId() { ...原创 2019-01-25 15:15:25 · 157 阅读 · 0 评论 -
spring学习二:DI与IOC
IoC:Inversion of control:控制反转:在传统开发模式下,对象的创建过程和管理过程都是由开发者通过Java程序来实现的,操作权在开发者的Java程序中,当使用了Spring框架后,对象的创建与管理都不再由开发者编写的程序来决定!而是交给框架来决定,具体的做法可以是通过配置框架的XML文件来实现,或其它方式。DI:Dependency Injection:依赖注入:为类的属性...原创 2019-01-24 23:07:53 · 126 阅读 · 0 评论 -
spring学习六:自动装配
自动装配使用autowairepublic class Restaurant { private Waiter wt; public Restaurant() { System.out.println("Restaurant()"); } public void setWt(Waiter wt) { System.out.println("setWt() " + wt); ...原创 2019-01-24 23:24:43 · 160 阅读 · 0 评论 -
spring学习三:<util>标签的使用
value:注入基本类型的值,包含String在里面ref:注入引用类型的值,用于注入其他bean,后面跟其他bean的idpublic class User { private String name; private int age; private String[] arrString; private int...原创 2019-01-25 10:47:40 · 483 阅读 · 0 评论 -
spring学习四:"util:properties"的使用
<util:properties>可用于注入Properties对象,也可以用于读取properties文件1、手动配置内容:<util:properties id="properties"> <prop key="name">zhangsan</prop> <prop key="age"&原创 2019-01-25 11:02:48 · 5937 阅读 · 1 评论 -
spring学习五:初始化方法,销毁方法、单例与延迟加载
public class ExampleBean { public ExampleBean() { System.out.println("ExampleDean()"); }}public class MessageBean { public MessageBean() { System.out.println("MessageBean()"); } publi...原创 2019-01-24 23:14:32 · 234 阅读 · 0 评论 -
spring学习六:@Autowired与@Resource
spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。 @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name...原创 2019-01-25 11:21:41 · 198 阅读 · 0 评论 -
spring学习七:@Value
@Value注解和@Autowired与@Resource类似,也可以用来注入内容,只不过用法有区别:1)@Value主要用来注入基本类型的值(包含String),一班不用来注入引用类型2)只有@Value可以使用Spring表达式3)@Value也可以使用在setter上<?xml version="1.0" encoding="UTF-8"?><beans...原创 2019-01-25 11:48:01 · 205 阅读 · 0 评论 -
spring学习八:spring表达式
JSP页面使用过EL表达式:${}Spring有Spring表达式:#{}Spring表达式用于获取bean的属性值<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.s...原创 2019-01-25 12:05:17 · 311 阅读 · 0 评论 -
spring学习九:配置DBCP数据源
1、配置db.properties文件:driver=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521:orcluser=rootpwd=rootinitSize=1maxSize=32、注入依赖:<!-- 读取db.properties文件 --> <util:pr...原创 2019-01-25 13:10:49 · 959 阅读 · 0 评论 -
spring学习十:配置JSP视图解析器
spring和JSP是原配,所以这里以配置JSP视图解析器为准:<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"/> &a原创 2019-01-25 13:12:55 · 777 阅读 · 0 评论 -
spring学习十一:开启默认servlet映射、配置组件扫描及配置注解驱动
1、配置组件扫描:<context:component-scan base-package="org.spring.teach"/>2、开启默认servlet映射:<mvc:default-servlet-handler/>3、配置注解驱动:<mvc:annotation-driven/> ...原创 2019-01-25 13:15:03 · 397 阅读 · 2 评论 -
spring学习十二:配置拦截器
拦截器类似于过滤器,都是用于对请求进行拦截,判断是否能继续向下执行的作用,可用于登录注册及权限检查。注:需要实现HandlerInterceptor接口<!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 拦截的请求 --> <!-- /*:只能拦...原创 2019-01-25 13:21:34 · 130 阅读 · 1 评论 -
spring学习十三:手动配置HandlerMapping
1、创建处理器类:Controller注:需要实现Controller接口,并且需要导入tomcat的jsp-api和servlet-api包。public class HelloController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpSe...原创 2019-01-25 13:29:39 · 351 阅读 · 1 评论 -
spring学习十四:配置SpringJdbc
SpringJdbc其实是JdbcTemplate,用来做数据库的操作。现在已经用的很少了,基本都是使用Mybatis和hibernate来完成数据库的操作。1、引入pring-jdbc依赖:<dependency> <groupId>org.springframework</groupId> <artifactId>s...原创 2019-01-25 14:17:57 · 140 阅读 · 0 评论 -
spring学习一:配置spring
1、pom.xml文件引入spring-webmvc依赖,顺带加上junit做单元测试:<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifa...原创 2019-01-24 22:35:51 · 106 阅读 · 0 评论