继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Spring 基于 Java 的配置

慕田峪4524236
关注TA
已关注
手记 204
粉丝 19
获赞 51

基于 Java 的配置

到目前为止,你已经看到如何使用 XML 配置文件来配置 Spring bean。如果你熟悉使用 XML 配置,那么我会说,不需要再学习如何进行基于 Java 的配置是,因为你要达到相同的结果,可以使用其他可用的配置。

基于 Java 的配置选项,可以使你在不用配置 XML 的情况下编写大多数的 Spring,但是一些有帮助的基于 Java 的注解,解释如下:

@Configuration 和 @Bean 注解

带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源。@Bean 注解告诉 Spring,一个带有 @Bean 的注解方法将返回一个对象,该对象应该被注册为在 Spring 应用程序上下文中的 bean。最简单可行的 @Configuration 类如下所示:

package com.tutorialspoint; import org.springframework.context.annotation.*; @Configuration public class HelloWorldConfig {    @Bean     public HelloWorld helloWorld(){       return new HelloWorld();    } }

上面的代码将等同于下面的 XML 配置:

<beans>    <bean id="helloWorld" class="com.tutorialspoint.HelloWorld" /> </beans>

在这里,带有 @Bean 注解的方法名称作为 bean 的 ID,它创建并返回实际的 bean。你的配置类可以声明多个 @Bean。一旦定义了配置类,你就可以使用 AnnotationConfigApplicationContext 来加载并把他们提供给 Spring 容器,如下所示:

public static void main(String[] args) {    ApplicationContext ctx =     new AnnotationConfigApplicationContext(HelloWorldConfig.class);     HelloWorld helloWorld = ctx.getBean(HelloWorld.class);    helloWorld.setMessage("Hello World!");    helloWorld.getMessage(); }

你可以加载各种配置类,如下所示:

public static void main(String[] args) {    AnnotationConfigApplicationContext ctx =     new AnnotationConfigApplicationContext();    ctx.register(AppConfig.class, OtherConfig.class);    ctx.register(AdditionalConfig.class);    ctx.refresh();    MyService myService = ctx.getBean(MyService.class);    myService.doStuff(); }

例子

让我们在恰当的位置使用 Eclipse IDE,然后按照下面的步骤来创建一个 Spring 应用程序:

步骤描述
1创建一个名称为 SpringExample 的项目,并且在创建项目的 src 文件夹中创建一个包 com.tutorialspoint
2使用 Add External JARs 选项,添加所需的 Spring 库,解释见 Spring Hello World Example 章节。
3因为你是使用基于 java 的注解,所以你还需要添加来自 Java 安装目录的 CGLIB.jar 和可以从 asm.ow2.org 中下载的 ASM.jar 库。
4在 com.tutorialspoint 包中创建 Java 类 HelloWorldConfigHelloWorld 和 MainApp
5最后一步是创建的所有 Java 文件和 Bean 配置文件的内容,并运行应用程序,解释如下所示。

这里是 HelloWorldConfig.java 文件的内容:

package com.tutorialspoint; import org.springframework.context.annotation.*; @Configuration public class HelloWorldConfig {    @Bean     public HelloWorld helloWorld(){       return new HelloWorld();    } }

这里是 HelloWorld.java 文件的内容:

package com.tutorialspoint; public class HelloWorld {    private String message;    public void setMessage(String message){       this.message  = message;    }    public void getMessage(){       System.out.println("Your Message : " + message);    } }


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP