`
wiselyman
  • 浏览: 2094071 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82332
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130806
社区版块
存档分类
最新评论

02点睛Spring4.1-Java Config

 
阅读更多

2.1 java config

  • spring的java config主要使用@Configuration@Bean两个注解;
    • 使用@Configuration注解在类上声明是一个配置类(相当于一个spring的配置xml);
    • 使用@Bean注解在方法上,返回值是一个类的实例,并声明这个返回值是spring的一个bean,bean的name是方法名;

2.2 关于@Bean和@Component,@Service,@Repository,@Controller

  • @Component,@Service,@Repository,@Controller注解在一个类上之后,这个类也成为spring容器中的bean,使用@Bean注解也是,感觉使用@Bean注解是不是更麻烦呢?

  • 既然效果是等同的,那什么时候使用@Bean什么时候使用@Component,@Service,@Repository,@Controller系列呢?

  • 这个原则就和我们当初混用xml配置和@Component,@Service,@Repository,@Controller时候一样:系统的全局配置(数据库配置,spring mvc配置,spring security配置等)使用java config(xml),业务相关的bean使用@Component,@Service,@Repository,@Controller系列。

  • 在后面我们讲到一些全局配置的时候我们就会使用Spring的java config

2.3 演示

2.3.1 创建一个properties(test.properties)文件作为配置

wisely.word = World

2.3.2 创建一个java class

package com.wisely.javaconfig;

public class DemoService {
    private String word;

    public String getWord() {
        return word;
    }

    public void setWord(String word) {
        this.word = word;
    }

    public String sayHello(){
        return "Hello "+this.word;
    }

}

2.3.3 创建java config配置类

package com.wisely.javaconfig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

@Configuration //声明是一个配置类
@PropertySource("com/wisely/javaconfig/test.properties")
public class DemoConfig {

    @Bean //声明是一个bean
    public DemoService demoBean(Environment environment){
        DemoService demoService = new DemoService();
        demoService.setWord(environment.getProperty("wisely.word"));
        return demoService;
    }
}

2.3.4 测试-初始化spring容器

package com.wisely.javaconfig;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

    public static void main(String[] args) {
        //设定此包下的类被注册成spring的bean,
        //包含@Configuration,@Component,@Service,@Repository,@Controller
        AnnotationConfigApplicationContext context =
                            new AnnotationConfigApplicationContext("com.wisely.javaconfig");
        DemoService demoService = context.getBean(DemoService.class);
        System.out.println(demoService.sayHello());
        context.close();
    }

}

输出结果:Hello World

 

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

 

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


1
0
分享到:
评论
2 楼 wiselyman 2015-05-27  
QuarterLifeForJava 写道
楼主,关于Environment的写法我不知道是不是我的姿势不对~
它报错:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.core.env.Environment]: Specified class is an interface

但是这样确是可以的:
@Autowired
private Environment env;

然后在方法中调用:
//测试environment
String evo = env.getProperty("jdbcDriverClassName");


DemoConfig 
这个类的完整代码贴一下
1 楼 QuarterLifeForJava 2015-05-27  
楼主,关于Environment的写法我不知道是不是我的姿势不对~
它报错:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.core.env.Environment]: Specified class is an interface

但是这样确是可以的:
@Autowired
private Environment env;

然后在方法中调用:
//测试environment
String evo = env.getProperty("jdbcDriverClassName");

相关推荐

    4.1-细胞分化形成组织.pptx

    细胞分化是生物体发育过程中的关键环节,它使得单一的受精卵细胞逐渐发展成为具有各种不同特性的细胞群体,最终构建出复杂的生命体。在医学领域,理解细胞分化对于研究胚胎发育、组织修复和疾病的发生机制至关重要。...

    国元点睛-20230825-国元期货-23页.pdf

    国元点睛-20230825-国元期货-23页

    眼睛穴位图-睛明穴-取穴方法

    眼睛穴位图-睛明穴-取穴方法 方便经常上网的朋友使用

    stasm4.1版本-人脸识别77个特征点提取

    **STASM4.1版本-人脸识别77个特征点提取** STASM,全称为Shape Tracking and Analysis by Shape Models,是一种广泛应用于人脸识别领域的算法,尤其在面部特征点定位方面表现出色。该算法的核心在于通过形状模型来...

    face-v4-java-sdk-master.zip

    《第五代深度学习人脸识别引擎JAVA SDK详解》 在IT领域,人脸识别技术正逐渐成为不可或缺的一部分,尤其在安全、身份验证和智能设备应用中扮演着重要角色。本文将深入探讨"face-v4-java-sdk-master.zip"这个压缩包...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    第二部分 点睛Spring MVC 4.x 第4 章 Spring MVC 基础 72 4.1 Spring MVC 概述 73 4.2 Spring MVC 项目快速搭建 74 4.2.1 点睛 74 4.2.2 示例 74 4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 ...

    司机眼睛状态标记---应用OpenCV人脸检测与模板匹配方法

    使用OpenCV1.0实现了眼睛状态识别,首先用harr检测眼睛,然后用模板匹配的方法标记眼睛状态。 程序需要使用Eyes45x11.xml Mouth25x15.xml Nose25x15.xml,将其放到C:\Program Files\OpenCV\data\haarcascades目录下...

    cardboard-java-master

    "cardboard-java-master" 是一个基于Android Studio的项目,它包含了谷歌官方提供的虚拟现实(VR)应用程序示例,专门针对Cardboard平台。Cardboard是谷歌推出的一个低成本、易获取的VR平台,它允许用户通过智能手机...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    第二部分 点睛Spring MVC 4.x 第4 章 Spring MVC 基础 72 4.1 Spring MVC 概述 73 4.2 Spring MVC 项目快速搭建 74 4.2.1 点睛 74 4.2.2 示例 74 4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 ...

    360点睛多语言加密示例和密码加密调试工具.zip

    这有助于开发者理解如何在Java应用中实现与360点睛API的接口调用,同时确保数据的加密传输。 4. **Python加密示例**:Python以其简洁易读的语法受到许多开发者喜爱。在Python的加密示例中,可能会使用如...

    orl_faces.rar_eye tracking_eye tracking - java_faces_java recogn

    在计算机视觉领域,"orl_faces.rar_eye tracking_eye tracking - java_faces_java recogn" 提供了一个综合性的资源包,主要用于人脸识别、眼睛定位以及眼睛跟踪技术的研究和应用。这个压缩包包含了两个主要部分:ps1...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    第二部分 点睛Spring MVC 4.x 第4 章 Spring MVC 基础 72 4.1 Spring MVC 概述 73 4.2 Spring MVC 项目快速搭建 74 4.2.1 点睛 74 4.2.2 示例 74 4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 ...

    点睛猜数字 Java 版

    点睛猜数字 Java 版  主要是为了了解一下 Java Swing 的用法。用了之后,觉得还真的不 好用  这个程序需要 J2RE 1.30 以上版本运行,目前 J2RE 最新版本是 1.4.2-03。可以在 Sun 的主页下载。  代码很短,...

    图像与眼睛(2009-04-1.pdf

    很抱歉,由于提供的文件信息中没有包含任何实际的文档内容,我无法从给定的信息中生成相关的知识点。请提供具体的文档内容或详细说明文档中的知识点要求,我将根据实际内容进行详细的回答。

    点睛文本编码查询(文本的字符串转换工具)

    软件名:点睛文本编码查询 功能:本软件用于将文本的字符串转换为 Text、ASCII、Default、Unicode、BigEndianUnicode、UTF-8、UTF-7、GBK、BIG5 之间的互相转换,用于文本查询。转换结果使用十六进制表示。

    点睛网赚论坛源码整站程序+10W数据【送主动推送工具】

    点睛网赚论坛源码整站程序+10W数据【送主动推送工具】 安装教程https://www.ygwzjs.cn/post/260.html 百度推送工具https://www.ygwzjs.cn/post/181.html 效果演示:z-www.seoheimao.cn 【全新优化】点睛网论坛整站...

    点睛 内码转换器

    "点睛内码转换器"是一款专为处理文本编码问题设计的工具,它能够帮助用户在不同的字符编码之间进行转换,以解决由于编码不匹配导致的乱码问题。在计算机科学领域,字符编码是用于表示文本的一系列规则,常见的有...

    java实现人脸融合

    在Java环境中实现人脸融合,我们可以遵循以下步骤和涉及的关键知识点: 1. **人脸检测**:首先,我们需要一个能够识别和定位图像中人脸的算法。常见的有Haar级联分类器、Dlib的HOG特征或基于深度学习的MTCNN(多...

    360点睛使用手册(2019.08).pdf

    360点睛使用手册是360官方于2019年推出的移动客户端软件,主要功能是推广管理。该手册详细介绍了软件的使用方法和功能特点,适用于广告主进行随时随地的账户投放管理。 首先,手册中的产品介绍部分指出,360点睛是...

Global site tag (gtag.js) - Google Analytics