spring学习总结(一)_Ioc基础(下)
本篇文章继续上篇文章讲解Ioc基础,这篇文章主要介绍零配置实现ioc,现在相信大家项目中也基本都是没有了xml配置文件。废话不多说。一起学习
代码示例
- BookDao.java
package com.kevin.spring.demo1.dao;
/**
* 图书数据访问接口
*/
public interface BookDao {
/**
* 添加图书
*
* @param bookName
* @return
*/
String addBook(String bookName);
}
- BookDaoImpl.java
/**
* 接口实现类
*/
@Repository
public class BookDaoImpl implements BookDao {
/**
* 添加图书接口
*
* @param bookName
* @return
*/
public String addBook(String bookName) {
return "添加图书《" + bookName + "》成功";
}
}
- BookService.java
@Service
public class BookService {
@Resource
BookDaoImpl bookDao;
public void storeBook(String bookName){
String result = bookDao.addBook(bookName);
System.out.println(result);
}
}
- User.java
package com.kevin.spring.demo1.entity;
import org.springframework.stereotype.Component;
@Component
public class User {
public User() {
System.out.println("创建User对象");
}
public User(String msg) {
System.out.println("创建User对象" + msg);
}
public void show() {
System.out.println("一个学生对象!");
}
}
- ApplicationConfig.java
package com.kevin.spring.demo1.config;
import com.kevin.spring.demo1.entity.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = "com.kevin.spring.demo1")
public class ApplicationConfig {
@Bean
public User getUser(){
return new User("成功");
}
}
测试类
@org.junit.Test
public void testBook(){
ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
BookService bookService = ctx.getBean(BookService.class);
bookService.storeBook("周杰伦");
User user = ctx.getBean("getUser",User.class);
user.show();
}
运行结果
创建User对象
创建User对象成功
添加图书《周杰伦》成功
一个学生对象!
@Configuration
@Configuration 相当于配置文件中的<beans/>
@ComponentScan
@ComponentScan相当于配置文件中的context:component-scan
@Bean
@Bean相当于<bean/>,只能注解在方法和注解上,一般在方法上使用
方法名相当于id
这里注意上面获取user时用的是getUser,因为方法名相当于id
@Value获取properties配置
- 新建一个dev.properties文件
boy.name = kevin
boy.age = 20
- BoyUtil.java
package com.kevin.spring.demo1.util;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:dev.properties")
public class BoyUtil {
@Value("${boy.name}")
private String name;
@Value("${boy.age}")
private String age;
@Override
public String toString() {
return "BoyUtil{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
//get和set方法省略
}
测试
@org.junit.Test
public void testBoyUtil(){
ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
BoyUtil boyUtil = ctx.getBean(BoyUtil.class);
System.out.println(boyUtil);
}
输出结果
创建User对象
创建User对象成功
BoyUtil{name='kevin', age='20'}
好了,springIoc基础就暂时告一段落。玩的开心
代码:https://github.com/runzhenghengbin/spring-study
参考:https://www.cnblogs.com/best/p/5727935.html#_label3
spring学习总结(一)_Ioc基础(下)的更多相关文章
- spring学习总结(一)_Ioc基础(中)
本篇文章继续上篇文章讲解Ioc基础,这篇文章主要介绍使用spring注解配置Ioc 上篇文章主要是通过xml配置文件进行Ioc的配置.这次进行改造下,通过注解进行配置 首先先看一个简单的demo 简单 ...
- spring学习总结(一)_Ioc基础(上)
最近经历了许许多多的事情,学习荒废了很久.自己的目标成了摆设.现在要奋起直追了.最近发现了张果的博客.应该是一个教师.看了他写的spring系列的博客,写的不错.于是本文的内容参考自他的博客,当然都是 ...
- 【Spring学习笔记-1】Myeclipse下Spring环境搭建
*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...
- Spring学习笔记一:基础概念
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774310.html 一:Spring是什么 Spring的主要作用是作为对象的容器. 传统编程中,我们 ...
- 1.4(Spring学习笔记)Spring-JDBC基础
一.Spring JDBC相关类 1.1 DriverManagerDataSource DriverManagerDataSource主要包含数据库连接地址,用户名,密码. 属性及含义如下配置所示: ...
- Spring学习随笔(2):Eclipse下Spring环境配置+入门项目
1 准备工作 (按需下载) Eclipse 下载:http://www.eclipse.org/downloads/eclipse-packages/ : Spring 下载:http://repo. ...
- 【Spring学习】【Java基础回顾-数据类型】
Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...
- 【Spring学习笔记-2】Myeclipse下第一个Spring程序-通过ClassPathXmlApplicationContext加载配置文件
*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...
- JavaSE入门学习7:Java基础语法之语句(下)
继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...
随机推荐
- 'style-loader', 'css-loader'使用
'style-loader', 'css-loader'使用 1.安装 npm install style-loader css-loader --save-dev 2.配置 webpack.conf ...
- 2018-2019-2 20175105 实验一《JAVA开发环境的熟悉》实验报告
一.实验内容及步骤 (一)使用JDK编译.运行简单的Java程序 利用cd指令和mkdir指令创建文件夹 利用vim指令编辑源代码文件 利用javac指令编译,利用java指令运行 (二)使用IDEA ...
- 动手动脑(lesson 6)
一.继承条件下的构造方法调用 运行结果: 二. 答:构造函数的主要作用是初始化环境,子类是继承的父类,也就是说父类中有的子类全都有,而子类中有的父类不一定有,因此子类运行会调用父类构造函数,而父类不可 ...
- GIT 远程仓库:添加远程库、从远程库克隆
到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...
- ajax上传文件以及实现上传进度条(转载)
做微信企业号的时候,在‘我的日志'功能模块里边需要添加一个上传文件的功能,并且要显示上传过程中的进度条和提交后的文件名列表,于是做了基于ajax的文件上传,UI用的是MUI框架,后台是TP框架 前端代 ...
- 如何从现有版本1.4.8升级到element UI2.0.11
现在的项目是定死的依赖以下几个核心组件的版本: vue 2.3.3 element-ui 1.4.8 vue-template-comiler 2.3.3 将以前定死的依赖修改为 vue ^2.3.3 ...
- kubectl客户端工具远程连接k8s集群
一.概述 一般情况下,在k8smaster节点上集群管理工具kubectl是连接的本地http8080端口和apiserver进行通讯的,当然也可以通过https端口进行通讯前提是要生成证书.所以说k ...
- 转 Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式: 方式一:加载classpath目录下的vm文件 Prope ...
- Http指南(3)
Web主机托管 主机托管服务 虚拟主机托管:许多Web托管者通过让一些顾客共享一台计算机来提供便宜的Web主机托管服务.这称为共享主机托管或虚拟主机托管 虚拟服务器请求缺乏主机信息: 不幸的是,HTT ...
- BugkuCTF web基础$_GET
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...