Java配置

Java配置是Spring 4.x推荐的配置方式,可以完全替代xml配置;
Java配置也是Sping Boot 推荐的配置方式。
Java配置是通过@Configuration和@Bean来实现的。
@Configuration 声明当前类是一个配置类,相当于一个Spring配置的xml文件。
@Bean 注解在方法上,声明当前方法的返回值为一个Bean。
使用原则:
全局配置使用Java配置(如数据库相关配置、MVC相关配置),业务Bean的配置使用注解配置
(@Service、@Component、@Repository、@Controlle).

实例

编写功能类的Bean

package com.wisely.highlight_spring4.ch1.javaconfig;
//1
public class FunctionService { public String sayHello(String word){
return "Hello " + word +" !";
}
}
代码解释
此处没有使用@Service声明Bean。 使用功能类的Bean
package com.wisely.highlight_spring4.ch1.javaconfig;

import com.wisely.highlight_spring4.ch1.javaconfig.FunctionService;
//1
public class UseFunctionService {
//2
FunctionService functionService; public void setFunctionService(FunctionService functionService) {
this.functionService = functionService;
} public String SayHello(String word){
return functionService.sayHello(word);
}
}
代码解释
此处没有使用@Service声明Bean
此处没有使用@Autowired注解注入Bean 配置类
package com.wisely.highlight_spring4.ch1.javaconfig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; @Configuration //1
public class JavaConfig {
@Bean //2
public FunctionService functionService(){
return new FunctionService();
} @Bean
public UseFunctionService useFunctionService(){
UseFunctionService useFunctionService = new UseFunctionService();
useFunctionService.setFunctionService(functionService()); //3
return useFunctionService; }
} 代码解释
使用@Configuration注解表明当前类是一个配置类,这意味着这个类里可能有0个或者多个@Bean注解,此处没有使用包扫描,是因为所以的Bean都在此类中定义了。
使用@Bean注解声明当前方法FunctionService的返回值是一个Bean,Bean的名称是方法名。
注入FunctionService的Bean时候直接调用 functionService().
package com.wisely.highlight_spring4.ch1.javaconfig;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(JavaConfig.class); UseFunctionService useFunctionService = context.getBean(UseFunctionService.class); FunctionService functionService = context.getBean(FunctionService.class); System.out.println(useFunctionService.SayHello("java config")); System.out.println(functionService.sayHello("faunjoe")); context.close();
}
}

aaarticlea/png;base64,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" alt="" />


												

Spring Java配置的更多相关文章

  1. SPRING SECURITY JAVA配置:Web Security

    在前一篇,我已经介绍了Spring Security Java配置,也概括的介绍了一下这个项目方方面面.在这篇文章中,我们来看一看一个简单的基于web security配置的例子.之后我们再来作更多的 ...

  2. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  3. spring实战六之使用基于java配置的Spring

    之前接触的都是基于XML配置的Spring,Spring3.0开始可以几乎不使用XML而使用纯粹的java代码来配置Spring应用.使用基于java配置的Spring的步骤如下: 1. 创建基于ja ...

  4. Spring入门(8)-基于Java配置而不是XML

    Spring入门(8)-基于Java配置而不是XML 本文介绍如何应用Java配置而不是通过XML配置Spring. 0. 目录 声明一个简单Bean 声明一个复杂Bean 1. 声明一个简单Bean ...

  5. 使用 Java 配置进行 Spring bean 管理--转

    概述 众所周知,Spring 框架是控制反转 (IOC) 或依赖性注入 (DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的.过去,Spring 允许开发人员使用基于 XML 的配置,通过利 ...

  6. 【原创】Spring MVC项目搭建(使用Java配置)

    一.使用Intellij idea,新建maven项目,选择maven-archetype-webapp. 二.在src/main下新建文件夹,命名为java,并标注为source folder. 三 ...

  7. Spring MVC + Security 4 初体验(Java配置版)

    spring Version = 4.3.6.RELEASE springSecurityVersion = 4.2.1.RELEASE Gradle 3.0 + Eclipse Neno(4.6) ...

  8. spring的Java配置入门(Spring Boot学习笔记之一)

    spring的Java配置 1.创建maven项目 使用idea创建maven项目,这里顺便提一下,idea真的比eclipse好用,早点熟悉吧.然后就是maven是java项目管理最主流的工具,自己 ...

  9. Spring完全基于Java配置和集成Junit单元测试

    要点: 配置继承WebApplicationInitializer的类作为启动类,相当于配置web.xml文件 使用@Configuration注解一个类,在类中的方式使用@Bean注解,则表名该方法 ...

随机推荐

  1. 用NaviCat创建存储过程批量添加测试数据

    打开navicat连接上数据库,然后打开左上角函数,新建一个函数. BEGIN DECLARE i int; --声明变量 DECLARE groupid int; set i=LAST_INSERT ...

  2. my.资料_副本_破六欲

    http://www.nok2.com/fxjy/816.html 梦幻之家礼包网讲解梦幻2破除心魔 来源:www.nok2.com作者:礼包达人时间:2016-04-01 22:11 最近听到不少小 ...

  3. Invalid prop: type check failed for prop "XXX". Expected String, got Object.

    项目是Vue的,基于elementUI的后台管理系统. Invalid prop: type check failed for prop "total". Expected Str ...

  4. toTop插件(三)

    前言 当窗体内容过多会出现滚动, 点击回到顶部滚动条在在上边(大家都懂得,我语文学的不好,表达不清^_^) 看代码 CSS : .toTop{ position: fixed; width: 50px ...

  5. gitee 搭建自己的代码仓库

    git是什么? 还是科普一下吧:Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理(来自我大百度) 现在越来越多的公司已经使用git来进行项目的版本管理,,使用起来 ...

  6. 二叉搜索树-php实现 插入删除查找等操作

    二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的 ...

  7. pat1050. String Subtraction (20)

    1050. String Subtraction (20) 时间限制 10 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Giv ...

  8. JEECMS站群管理系统-- 自定义标签及使用自己创建的表的实现过程

    下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public cla ...

  9. HDU 4349——Xiao Ming's Hope——————【Lucas定理】

    Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. 动态行转列 pivot实现

    declare @sql varchar(8000)    begin              set @sql=''  --初始化变量@sql              select  @sql= ...