`

Spring的几个有用的小功能

阅读更多

一、 Spring的Profile功能

这个功能的使用方法其实和Maven的profile是一样的,可以通过不同的参数来激活某些配置,这样便于我们在开发、调试以及生产模式下进行切换。

对于类的配置,如果需要启用Profile功能,有以下几种方式:

    1. 对于在配置类上使用注解方式的配置

 

@Configuration
@Profile(value="productprofile")
public class ProductConfig {
...
}

 

    2. 对于使用注解方式定义类

 

@Bean
@Profile("dev")
public Person getPerson() {
}

 

 

    3. 在XML里使用

 

	<beans>
		<bean id="person" class="com.test.spring.profile.ProfilePerson">
			<constructor-arg value="The message comes from default enviorment."/>
		</bean>
		
		<bean id="person2" class="com.test.spring.profile.ProfilePerson">
			<constructor-arg value="The message comes from default2 enviorment."/>
		</bean>
	</beans>
	
	<beans profile="dev">
		<bean id="person" class="com.test.spring.profile.ProfilePerson">
			<constructor-arg value="The message comes from development enviorment."/>
		</bean>
	</beans>
	
	<beans profile="prd">
		<bean id="person" class="com.test.spring.profile.ProfilePerson">
			<constructor-arg value="The message comes from production enviorment."/>
		</bean>
	</beans>

     4. 也可以将特定的配置集中在某些文件里,然后通过参数来激活   

<import resource="spring/spring-profile-${spring.profiles.active}.xml"/>

 

总结一下,就是以下这些:

1.ENV方式: ConfigurableEnvironment.setActiveProfiles("unittest")
2.代码方式:System.setProperty("spring.profiles.active", "dev")
3.JVM参数方式: -Dspring.profiles.active="unittest"
4.web.xml方式:
<init-param>
  <param-name>spring.profiles.active</param-name>
  <param-value>production</param-value>
</init-param>
5.标注方式(junit单元测试非常实用):
@ActiveProfiles({"unittest","productprofile"})

 

 

 

 

二、Spring里的事件发布功能

之前看过Guava的事件发布,回过头发现Spring也已经提供了,对于项目里简单的事件触发功能,肯定是够用了。以下内容转载自:http://wiselyman.iteye.com/blog/2212013

       应按照如下部分实现bean之间的消息通讯

  • 继承ApplicationEvent类实现自己的事件
  • 实现继承ApplicationListener接口实现监听事件
  • 使用ApplicationContext发布消息

 

//事件类
import org.springframework.context.ApplicationEvent;

public class DemoEvent extends ApplicationEvent{
    private static final long serialVersionUID = 1L;
    private String msg;

    public DemoEvent(Object source,String msg) {
        super(source);
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

}

//监听类
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@Component
public class DemoListener implements ApplicationListener<DemoEvent> {

    public void onApplicationEvent(DemoEvent event) {
            String msg = ((DemoEvent) event).getMsg();
            System.out.println("我监听到了pulisher发布的message为:"+msg);

    }

}

//测试类
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.stereotype.Component;
@Component
public class Main {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext("com.event");
        Main main =context.getBean(Main.class);
        main.pulish(context);
        context.close();

    }
    public void pulish(AnnotationConfigApplicationContext context){
        context.publishEvent(new DemoEvent(this, "22"));
    }

}

 

 

三、Spring的Conditional功能

其实这个功能感觉上跟Profile是类似的,主要是Conditional允许自定义规则,更加灵活一些。

这里有一篇文章,对两者有一个示例性的说明:

http://blog.csdn.net/yangxt/article/details/19970323

分享到:
评论

相关推荐

    使用wx-java-miniapp-spring-boot-starter开发的微信小程序演示demo.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    springmybatis

    下面对这几个配置文件解释下: 1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 ...

    基于Spring Boot的课堂签到小程序.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    maven + spring boot + jdbc + mysql 定时器 的一个爬虫小程序 .zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    基于微信原生组件的仿抖音短视频小程序+基于Spring Boot的小程序后台管理系统.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    商场 购物车 秒杀 Kafka redis lucene等等,Spring Boot,vue,微信小程序 .zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    各类学习;爬虫学习,spring-boot学习,spring cloud学习.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    用卷积滤波器matlab代码-Robotics:几个机器人领域的有用代码

    几个机器人技术领域的有用代码。 它分为以下几个主要分支: 工程。 智力。 跟踪和传感。 丰富的资源 在这个项目中使用。 工程 。 。 学习在MATLAB和Simulink中建模,分析和设计控制系统的基本技能。 彼得·科克...

    软件工程课程设计,餐馆点餐系统 spring boot+vue+微信小程序 mysql数据库.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    基于SSM的爬虫系统,Spring+Spring MVC+MyBatis+Druid+Redis+MQ.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    一个海盗湾的爬虫,通过Spring Mvc提供API.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    gecco爬虫和spring结合使用.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    基于Spring boot 实现的股票基金爬虫工具.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    spring-boot-ldap-useradmin:使用 ldap 进行用户管理

    用户管理示例演示如何使用 ...还有几个属性可用LDAP 中的组通常组织在groupOfName或groupOfUniqueName条目中。 这些条目具有名称、可选描述和包含组所有成员的专有名称(即唯一标识符)的属性。 该属性分别命名为memb

    spring boot + vue + element-ui + mongodb 实现网易buff爬虫数据可视化.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    后台脚手架框架,包括用户管理、角色管理、权限系统等功能.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    使用海康sdk实现了实时预览,历史回放和云台控制的java spring-boot程序.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    基于小程序的志愿者活动管理系统.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    电影数据爬虫开发项目,有ES7和ES6两个.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

Global site tag (gtag.js) - Google Analytics