一.环境搭建

创建Maven项目

  • 一般pom.xml会出错,本地若无相应版本的jar包,则无法下载或下载速度非常慢,我的解决方案是,查找本地仓库的jar,修改为本地仓库有的jar即可
  • pom.xml的依赖jar可以从Maven搜索

二.Spring的 IOC(控制反转)与DI(依赖注入)

IOC(把Bean 的创建与管理交给Spring容器)

  • 使用@Component,@Service,@Controller,@Repository 注解Bean ,让spring管理,四个功能等效,但应该在相对应的组件上标识
  • @Bean方式,在配置类中(有@Configuration注解的类) 用@Bean注解的方法的返回值类型的Bean会被spring管理

DI 注入相应的Bean

  • @Autowired,@Inject, @Resource,可以注解在属性或者Set方法上(我一般注解在属性上,这样可以省去set方法)

三.配置类的注解

  • @Configuration标识该类为配置类
  • @ComponentScan(“包名”)让spring扫描该包下的被注解为Bean的类

四.AOP(切面编程,基于cglib动态代理或者JDK动态代理)

  • @Aspect标注类为切面类
  • @PoinCut(“execution( com.aop.serivce.*(..))”) 定义切点,被注解的方法名为切点名称
  • @Before前置通知,被标注的方法会在目标方法前执行
  • @After后置通知,被注解的方法会在目标方法执行过执行
  • @AfterReturning返回通知,在目标方法执行后切没有异常时执行
  • @AfterThrowing 异常通知,在目标方法执行抛异常时执行
  • 使用时要在配置类上注解@EnableAspectJAutoProxy,开启spring对AspectJ 的支持

五.常用配置

@Scope常用 有两种取值 Singleton 和 Prototype

  • Singleton 为默认值 Bean我单例
  • Prototype Bean为多例

配置文件读取

  1. 在配置类上注解@ProperSource(“文件路径”)
  2. 用@Value(“${key}”)注入配置文件的值

Bean的初始化和销毁

  • @PostConstruct 注解的方法会在Bean的构造方法执行后执行
  • @PreDestroy 注解的方法会在Bean销毁前执行
  • @profile(“参数值”)注解Bean,可更具@ActiveProfiles(“参数值”)的参数值创建相应的Bean

六.多线程

  1. 使用@EnableAsync 注解配置类开启对异步任务的支持
  2. 并且要实现AsyncConfiguer接口
  3. 创建一个线程池
  4. 在方法上注解@Async 就说明这个方法为异步方法
@Configuration
@ComponentScan("com.sjx.spring2.multithread")
@EnableAsync//开启异步支持
public class TaskExecutorConfig implements AsyncConfigurer{ @Override
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(25);
executor.initialize();
return executor;
} @Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return null;
}
}

七.计划任务

  1. 在配置类添加注解@EnableSchedule 开启对计划任务的支持
  2. 在方法上注解@Scheduled申明方法为计划方法
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("当前时间为"+dateFormat.format(new Date()));
} @Scheduled(cron="0 17 10 ? * *")//每天的10点17
public void fixTimeExecution() {
System.out.println("当定时时间"+dateFormat.format(new Date())+"执行");
}

八.集成Junit

  1. @RunWith(SpringJUnit4ClassRunner.class)提供spring测试的上下文环境
  2. @Test标识方法为测试方法
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={AwareConfig.class})
public class AwareTest {
@Autowired
private AwareService service;
@Testpublic void test1(){
service.outputResult();
}
}

Spring小结的更多相关文章

  1. spring 小结

    第一步:配置 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xs ...

  2. Spring mvc中@RequestMapping 6个基本用法小结(转载)

    小结下spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: @RequestMapping(value="/departments" ...

  3. Spring boot中使用springfox来生成Swagger Specification小结

    Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api   json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...

  4. spring security 3中的10个典型用法小结

    spring security 3比较庞大,但功能很强,下面小结下spring security 3中值得 注意的10个典型用法 1)多个authentication-provide可以同时使用 &l ...

  5. spring mvc中的拦截器小结 .

    在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...

  6. Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结

    Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结 这两天闲着没事想利用**Spring Boot**加上阿里的开源数据连接池**Druid* ...

  7. Spring mvc中@RequestMapping 6个基本用法小结

    Spring mvc中@RequestMapping 6个基本用法小结 小结下spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: @RequestMa ...

  8. Spring归纳小结(山东数漫江湖)

    前言 如果说有什么框架是Java程序员必然会学习.使用到的,那么Spring肯定是其中之一.本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结. Spring的一些概念和思想 S ...

  9. 转:Spring mvc中@RequestMapping 6个基本用法小结

    Spring mvc中@RequestMapping 6个基本用法小结 发表于3年前(2013-02-17 19:58)   阅读(11698) | 评论(1) 13人收藏此文章, 我要收藏 赞3 4 ...

随机推荐

  1. Java 数组 可变长参数 实例

    可以把类型相同但个数可变的参数传递给方法,方法中的参数声明如下: typeName...parameterName (类型名...参数名) 在方法声明中,指定类型后紧跟着省略号...,只能给方法指定一 ...

  2. 阿里云2003服务器VPN搭建[转自阿里云官方论坛]

    VPN可以应用在很多方面,很多公司只是拿它接入公司内部网络,但我们做安全的需要的是利用它做跳板上网(还有提高网速).这篇文章主要是针对这种应用来说的,包括公网VPN的配置. 服务器配置 前奏:关闭防火 ...

  3. 关于kinect的安装与配置工作

    一 关于kinect的安装与配置工作 首先要注意的是,使用kinect进行开发,目前有两种不同的驱动方案,经测试这两种方案的驱动是不能兼容的,所以请务必选定其中一种(最好是卸载另外一种). 方案一:使 ...

  4. 将Excel生成实体类

    package com.excel.test; import java.util.List; public class createUtil { public static String append ...

  5. leetcode 130. Surrounded Regions----- java

    Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A reg ...

  6. leetcode 128. Longest Consecutive Sequence ----- java

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  7. Promise 学习笔记

    所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消息.Promise提供统一的API, ...

  8. 修改host文件屏蔽视频广告和网站

    很多时候我们会需要屏蔽一些网站或者广告,类似XX网站,下木马病毒的网站,或者破解软件的时候.我们可以使用一些软件屏蔽,我这里是用windows系统自带的hosts文件来屏蔽的.这个文件有点类似精简版的 ...

  9. HTML 5 canvas —— 基本语法

    目录 简述 canvas 基础 2D context API 基本线条 路径 插入图像 像素级操作 文字 阴影 颜色渐变 小节 简述 HTML 5 规范引进了很多新特性,其中最令人期待的之一就是 ca ...

  10. spring之bean的作用域scope的值的详解

    今天研究了一下scope的作用域.默认是单例模式,即 scope="singleton".另外scope还有prototype.request.session.global ses ...