Spring小结
一.环境搭建
创建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为多例
配置文件读取
- 在配置类上注解@ProperSource(“文件路径”)
- 用@Value(“${key}”)注入配置文件的值
Bean的初始化和销毁
- @PostConstruct 注解的方法会在Bean的构造方法执行后执行
- @PreDestroy 注解的方法会在Bean销毁前执行
- @profile(“参数值”)注解Bean,可更具@ActiveProfiles(“参数值”)的参数值创建相应的Bean
六.多线程
- 使用@EnableAsync 注解配置类开启对异步任务的支持
- 并且要实现AsyncConfiguer接口
- 创建一个线程池
- 在方法上注解@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;
}
}
七.计划任务
- 在配置类添加注解@EnableSchedule 开启对计划任务的支持
- 在方法上注解@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
- @RunWith(SpringJUnit4ClassRunner.class)提供spring测试的上下文环境
- @Test标识方法为测试方法
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={AwareConfig.class})
public class AwareTest {
@Autowired
private AwareService service;
@Testpublic void test1(){
service.outputResult();
}
}
Spring小结的更多相关文章
- spring 小结
第一步:配置 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xs ...
- Spring mvc中@RequestMapping 6个基本用法小结(转载)
小结下spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: @RequestMapping(value="/departments" ...
- Spring boot中使用springfox来生成Swagger Specification小结
Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...
- spring security 3中的10个典型用法小结
spring security 3比较庞大,但功能很强,下面小结下spring security 3中值得 注意的10个典型用法 1)多个authentication-provide可以同时使用 &l ...
- spring mvc中的拦截器小结 .
在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...
- Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结
Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结 这两天闲着没事想利用**Spring Boot**加上阿里的开源数据连接池**Druid* ...
- Spring mvc中@RequestMapping 6个基本用法小结
Spring mvc中@RequestMapping 6个基本用法小结 小结下spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: @RequestMa ...
- Spring归纳小结(山东数漫江湖)
前言 如果说有什么框架是Java程序员必然会学习.使用到的,那么Spring肯定是其中之一.本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结. Spring的一些概念和思想 S ...
- 转:Spring mvc中@RequestMapping 6个基本用法小结
Spring mvc中@RequestMapping 6个基本用法小结 发表于3年前(2013-02-17 19:58) 阅读(11698) | 评论(1) 13人收藏此文章, 我要收藏 赞3 4 ...
随机推荐
- Particles.js基于Canvas画布创建粒子原子颗粒效果
文章目录 使用方法 自定义参数 相关链接 Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状.旋转.分布.颜色等属性,还可以动态添加粒子,效果非常炫 ...
- JS控制文本框textarea输入字数限制
<html> <head> <title>JS限制Textarea文本域字符个数</title> <meta http-equiv="C ...
- form的onsubmit事件--表单提交前的验证最佳实现方式
今天遇到了一个问题,页面中include了很多的公共页面(都是没有form的),并且里面好多的地方都是自行提交的(页面中加入一个type=“submit”域,然后js中写入sumbit.click来执 ...
- Python简史
Python简史 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python是我喜欢的语言,简洁,优美,容易使用.前两天,我很激 ...
- 关于setInterval()里的this和细节
setInterval(fn,t);里的fn中,要使用外部类的this,则需要先将this保存起来,再使用保存的this,不能直接使用this,里面的this是指向window对象,记住setInte ...
- HTML5里autofocus属性
转载:http://www.webhek.com/html5-autofocus/ HTML5给我们带来了一大堆神奇的东西.以前需要用JavaScript和Flash完成的任务,例如表单校验,INPU ...
- Linux系统编程@进程管理(二)
1.创建守护进程(Deamon) 守护进程的概念与作用 后台服务程序 – 系统服务,进程名字往往以’d’结尾,生存周期比较长(系统装入时启动,关闭时候终止.系统装入两种启动方式:1从启动脚本.etc/ ...
- Java——网络编程
// TODO Auto-generated method stub //获取本地主机IP对象 InetAddress ip = InetAddress.getLocalHost(); Syst ...
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道 原创 2016-09-21 钟巧勇 深度学习大讲堂 点击上方“深度学习大讲堂”可订阅哦!深度学习大讲堂是高质量原创内容平台,邀请 ...
- gdb Debugging Full Example
http://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html