Spring常用配置

来源:互联网 发布:商城app源码下载 编辑:程序博客网 时间:2024/05/17 03:05

一、前言

这一篇讲解一些基础常见配置。司空见惯,只为复习与新人学习之用。

二、单例多例

2.1 默认单例

我们默认的bean就是单例
import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Service;/** * Created by ycy on 16/4/8. */@Service//相当于  @Scope("singleton")public class DemoSingleService {}

2.2 多例(每次新建一个bean)

/** * Created by ycy on 16/4/8. */@Service@Scope("prototype")//1public class DemoPrototypeService {}

三、文件注入

一般都是properties文件的注入,以及其他文件注入等待。一般不建议这么玩耍,除非万不得已。因为毕竟配置的还是交给同意配置好了。这样不利于维护
@Configuration@ComponentScan("com.ycy")@PropertySource("classpath:test/testproper.properties")public class ElConfig {    @Value(" i love you")    private String normal;//注入普通字符    @Value("${book.name}")    private String bookName;//注入配置文件}

四、jvm参数使用代替classpath等文件配置

还在习惯使用classpath 的小伙伴,你已经out了,你想过没有,你的项目文件的配置如果基于标准化。那么你应该是不知道properties文件里面到底配置了什么参数,这样即可以统一管理我们的项目配置文件,又安全。因为如果项目代码被盗,至少配置不在项目里面!!!
  这里只是做一些基本的jvm的value配置
-ea-Dmercury.conf.file=file:/Users/ycy/IdeaProjects/branches/up2_index_ycy/mercury-web/src/main/webapp/WEB-INF/properties/development.properties-Dlogger.root=/Users/logycy-Djetty.port=9090
解释:例子中我们定义了三个value:
1、定义了一个文件 (我们无论是什么环境都使用mercury.conf.file作为配置文件就没错了
2、定义log根目录
3、定义jetty端口号



五、使用spring的@Async异步执行方法

应用场景:

1、某些耗时较长的而用户不需要等待该方法的处理结果

2、某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时

     @Async        public static void testAsyncMethod(){            try {                //让程序暂停100秒,相当于执行一个很耗时的任务                //或者记录日志就不要占用客户端的时间了                Thread.sleep(100000);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }


0 0
原创粉丝点击