【Spring】Spring基础配置-Java配置

转载请注明出处:http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客

分析

Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置;
Java配置也是Spring Boot推荐的配置方式。

Java配置不需要@Service声明Bean。
也不需要@Autowired注入Bean。
只需要通过@Configuration和@Bean来实现。

@configuration声明当前类是一个配置类,相当于一个Spring配置的xml文件.
@Bean注解在方法上,声明当前方法的返回值为一个Bean.

本篇只是演示最简单的Java配置,本【Spring】系列博客会一直更新。
要一直学下去的,可以关注我博客。

对于类的说明,我一般是写在代码注释中。

示例:

编写功能类的Bean

package cn.hncu.p1_3_2;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/4.
 * Time: 下午 10:43.
 */

//注意! 此处没有使用@Service
public class FunctionService {
    public String sayHello(String word){
        return "Hello "+word + " !";
    }
}

使用功能类的Bean

package cn.hncu.p1_3_2;

import cn.hncu.p1_3_1.*;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/4.
 * Time: 下午 11:10.
 */
//注意!此处没有使用@Service声明Bean
public class UseFunctionService {
    FunctionService functionService;
    //此处没有使用@Autowired注解注入Bean
    public void setFunctionService(FunctionService functionService){
        this.functionService = functionService;
    }

    public String sayHello(String word){
        return functionService.sayHello(word);
    }
}

配置类

package cn.hncu.p1_3_2;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/4.
 * Time: 下午 11:17.
 */
@Configuration
//使用@Configuration注解表明当前类是一个配置类,这意味着这个类里可能有0个或者多个@Bean注解、
//此处没有使用包扫描,是因为所有的Bean都在此类中定义了
public class JavaConfig {
    @Bean
    //使用@Bean注解声明当前方法FunctionService的返回值是一个Bean,Bean的名称是方法名
    public FunctionService functionService(){
        return new FunctionService();
    }

    /*
    @Bean
    public UseFunctionService useFunctionService(){
        UseFunctionService useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService());
        //注入FunctionService的Bean时候直接调用functionService()
        return useFunctionService;
    }
    */

    @Bean
    public  UseFunctionService useFunctionService(FunctionService functionService){
        //另外一种注入的方式,直接将FunctionService作为作为参数给useFunctionService(),这也是Spring容器提供的极好的功能。
        //在Spring容器中,只要容器中存在某个Bean,就可以在另外一个Bean的声明方法的参数中直接写入
        UseFunctionService useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService);
        return useFunctionService;
    }
}

运行类

package cn.hncu.p1_3_2;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/4.
 * Time: 下午 11:36.
 */
public class Main {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
        UseFunctionService useFunctionService = context.getBean(UseFunctionService.class);
        System.out.println(useFunctionService.sayHello("张三"));
        context.close();
    }
}

运行结果

项目链接-具体的包;
https://github.com/chenhaoxiang/Java/tree/master/springBoot/src/main/java/cn/hncu/p1_3_2

本文章由[谙忆]编写, 所有权利保留。

转载请注明出处:http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客

时间: 2024-10-29 18:06:59

【Spring】Spring基础配置-Java配置的相关文章

1.3—Spring基础配置—2.Java配置

1.点睛Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置:Java配置也是Spring Boot推荐的配置方式.Java配置是通过@Configuration和@Bean来实现的.@Configuration声明当前类是一个配置类,相当于一个Spring配置的xml文件.@Bean注解在方法上,声明当前方法的返回值为一个Bean.本书通篇使用Java配置和注解配置混合配置.何时使用Java配置或者注解配置呢?我们主要的原则是:全局配置使用Java配置(如数据库相关配置.MV

java实现Spring在XML配置java类的方法_java

1. 创建自己的bean文件:beans.xml <?xml version="1.0" encoding="UTF-8"?> <busi-beans> <beans> <bean id="SysHelloImpl" type="com.cxm.test.SysHello"> <desc>test</desc> <impl-class>com.

Spring Java 配置之 Session 超时 【已翻译100%】

我们生活在一个美好的时代,在这个时代你可以使用基于java的配置来开发一个Spring应用程序. 再也没有多余的XML代码了,只有纯正的java代码. 本文中我想要讨论一下关于Spring应用程序中的session管理这里流行主题. 更确切的目的是我将会说说java配置风格会话超时配置. 而在我之前的一篇 博文 中, 我已经谈到了如何去管理一个会话的生命周期. 但是那一种方案需要使用web.xml文件,而在基于java的配置中是不需要的. 因为其作用是操作一个扩展了 AbstractAnnota

Spring Boot 探索系列 - 自动化配置篇

26. Logging Prev  Part IV. Spring Boot features  Next 26. Logging Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging,Log4J, Log4J2 an

spring事务-spring AOP 拦截器方式配置事务失效

问题描述 spring AOP 拦截器方式配置事务失效 Spring.xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:conte

Spring事务——Spring 2.X的事务配置策略

Spring 2.X的事务配置策略     虽然前面介绍的TransactionProxyFactoryBean配置策略简单易懂,但配置起来极为麻烦:每个目标Bean都需要配置一个TransactionProxyFactoryBean代理,这种方式将导致配置文件急剧增加.     Spring 2.X的XMLSchema方式提供了更简洁的事务配置策略,Spring 2.X提供了tx命名空间来配置事务管理,tx命名空间提供了<tx:advice../>元素来配置事务增强处理,一旦使用该元素配置了

mvc注解-spring MVC注解 + hibernate +jpa配置 出错 具体如下

问题描述 spring MVC注解 + hibernate +jpa配置 出错 具体如下 这个是错误 No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 0 下面为XML配置文件 web.xml 导入hibernate <filter> <filter-name>openEntityManagerInViewFilter&

Spring MVC完全注解方式配置web项目_java

在servlet 3.0 开始web项目可以完全不需要web.xml配置文件了,所以本文的配置只在支持servlet 3.0及以上的web容器中有效 使用的是spring mvc (4.3.2.RELEASE) + thymeleaf(3.0.2.RELEASE), 持久层使用的 spring的 JdbcTemplate, PS:推荐一个很好用的对JdbcTemplate封装的框架:https://github.com/selfly/dexcoder-assistant  . 下面开始具体的配置

Spring IoC — 基于XML的配置

原文:Spring IoC - 基于XML的配置 1.属性注入 注意点: 1)如果类中显示定义了一个带参的构造函数,则一定还要显示提供一个无参构造函数,否则使用属性注入时将抛出异常. 2)JavaBean关于属性命名的特殊规范.Spring只会检查Bean中是否有对应的Setter方法,至于Bean中是否有对应的属性变量则不做要求.如maxSpeed对应setMaxSpeed(),brand对应setBrand(). 所以<property>元素的属性变量名应满足:xxx的属性对应setXxx