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 ...
随机推荐
- 【spring-boot神器】第一篇:拦截器,过滤器,监听器,控制器,消息转换器,AOP执行顺序
整理一下这几天学习的资料和代码 第一部分.上代码 1.spring各种器的实现,idea搭建spring-boot的教程在这里http://www.jianshu.com/p/9082a533fa3c ...
- matlab:inv,pinv逆与伪逆
对于方阵A,如果为非奇异方阵,则存在逆矩阵inv(A)对于奇异矩阵或者非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆 inv: inv(A)*B实际上可以写成A\BB*inv(A)实 ...
- Java发送QQ邮件
面试的时候被问到这个问题,别人问我用Java发过邮件没有,被问得一脸懵逼.然后就研究了一下,不是很难,按照网上的方法折腾了几天就搞出来了. 首先,使用QQ邮箱发送邮件之前需要在邮箱里面配置,开启pop ...
- HashMap 的实现原理
hashMap用了一个名字为table的数组:还有若干个名字为entry的链表.看hashMap是如何应用这些数据结构的.用插 入<key,value>举例:hashMap首先会通过key ...
- ASP.NET MVC学习笔记(二)笔记
接下来我们一起了解ASP.NET MVC的最重要的核心技术,了解ASP.NET MVC的开发框架,生命周期,技术细节. 一.Routing与ASP.NET MVC生命周期 1.Routing——网址路 ...
- CF1039D You Are Given a Tree 根号分治、二分、贪心
传送门 似乎直接做不太好做-- 当你不会做的时候就可以考虑根号算法了(或许是这样的 考虑如果只有一个询问如何计算答案. 显然是可以贪心的,思路与NOIP2018D1T3是相同的.每一个点向上传一条链, ...
- LOJ558 我们的 CPU 遭到攻击 LCT
传送门 题意:写一个数据结构,支持森林上:连边.删边.翻转点的颜色(黑白).查询以某一点为根的某棵树上所有黑色点到根的距离和.$\text{点数} \leq 10^5 , \text{操作数} \le ...
- Ionic2 播放mp3功能实现
在开发app的过程中有需要播放mp3的功能,一直想实现,但苦于具体的困难一直未能实现,经过一段时间的资料查询和测试,最终摸索出来,现记录如下: 1.最重要的是安装第三方插件ionic-audio,开源 ...
- Create-React-App 使用记录
如果要修改 host 和 端口,需要在项目根目录添加 .env 文件,然后再文件中添加 HOST=dev.zhengtongauto.com PORT=3000 如果需要加上反向代理,需要处理接口跨域 ...
- System.Data.SqlClient.SqlException:“对象名 'customer' 无效。"
连接数据库出错, 错误原因:表名错误.