Java全栈程序员之08:MAVEN+JAVA配置
从Spring3.0开始,Spring支持以Java配置的方式来代替XML配置。这一点说起来其实有点可笑,XML配置的方式最初被创建出来就是为了让配置与程序员无关。可是最终我们发现,绝大多数的那些配置最终还是回到了程序员手里。于是,从Spring3.0开始,我们又将主动权交回到了自己手里。
让我们看一个最简的Spring注解案例:
1.创建测试项目

User
package com.zuikc.bean;
public class User {
private String username;
private String password;
private int age;
public User(String username, String password, int age){
this.username = username;
this.password = password;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
'}';
}
}
UserDao
package com.zuikc.dao;
import com.zuikc.bean.User;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
public List<User> queryUserList(){
List<User> result = new ArrayList<User>();
for (int i = 0; i < 10; i++) {
User user = new User("username_" + i,"password_" + i ,i);
result.add(user);
}
return result;
}
}
UserService
package com.zuikc.service;
import com.zuikc.bean.User;
import com.zuikc.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserDao userDAO;
public List<User> queryUserList() {
return this.userDAO.queryUserList();
}
}
2.Spring的Java配置方式
一直到目前为止,我们看到的从bean到service,跟传统的ssm没有任何区别。理论上,这个时候我们就要去配置spring的配置文件了,但是这个时候我们决定抛弃这种传统的做法,改而使用java配置的方式。
让我们首先创建一个java类,比如叫SpringConfig(名字其实可以任意),代码如下:
SpringConfig,
package com.zuikc.config;
import com.zuikc.dao.UserDao;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration //表明该类为配置类,相当于xml配置
@ComponentScan(basePackages = "com.zuikc") //配置扫描包
public class SpringConfig {
@Bean // 配置bean
public UserDao getUserDAO(){
return new UserDao(); // 直接new对象做演示
}
}
现在让我们依次解释这个类中的3个注解。
@Configuration,作用于类上,这表明这就是一个配置类,相当于当前这个类就是之前的xml配置文件;
@ ComponentScan,是不是有点熟悉,这是在配置spring的扫描包;
@Bean 作用于方法上,相当于xml配置中的<bean>。以前的bean,是在xml中配置,然后由spring容器生产出来。现在呢,不要容器生产了,由我们自己生产;
3.测试
写一个测试主类吧:
package com.zuikc;
import com.zuikc.bean.User;
import com.zuikc.config.SpringConfig;
import com.zuikc.service.UserService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.util.List;
public class SampleTest01 {
public static void main(String[] args) {
// 实例化Spring容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
// 获取Bean对象
UserService userService = context.getBean(UserService.class);
List<User> list = userService.queryUserList();
for (User user : list) {
System.out.println(user);
}
// 容器销毁
context.destroy();
}
}
结果为:

4.用Java配置支持配置文件读取
我们可以通过@PropertySource指定配置文件,并通过@Value注解获取值,具体用法如下,
创建配置文件properties,内容如下
url=jdbc:mysql://localhost:3306/jdbctestdb
然后比如修改UserDao,

启动代码,看看是否已经url是否已经得到了:)。
感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。
Java全栈程序员之08:MAVEN+JAVA配置的更多相关文章
- Java全栈程序员之03:Ubuntu下安装idea
JetBrains的产品我曾经用过很长一段时间,它们是resharper和dotcover.VS号称宇宙最强IDE,直到它遇到了resharper,我们才知道,原来vs可以更好.DotCover是一个 ...
- Java全栈程序员之01:做个Linux下的程序猿
Windows10正在成为史上口碑最差的Windows系统 (图侵删) 我曾经花了数次1小时去寻找解决方案去关闭自动更新,包括停掉服务.修改注册表等等.但是都没有成功. 微软自身是知道这个问题的,但就 ...
- Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试
在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...
- Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
使用idea绝不是开发一个Hello World这么简单,现在我们要使用idea进行企业级开发(也就是JavaEE)的准备了,那么首先,我们就得有一个web应用服务器.选什么呢?当然首选是大名鼎鼎的T ...
- Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目
在上一篇我们介绍了如何在IDEA中使用MAVEN,以及如何创建依赖等.那么在这一篇中,我们就试图搭建一个生产级的解决方案,大家可以使用这个解决方案作为骨架代码来搭建自己的开发环境. 在这里,我们要完成 ...
- Java全栈程序员之06:IDEA中MAVEN项目依赖及运行
MAVEN已经成为事实上的企业项目开发中的项目类型.无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目.严格意义上来说,MAVEN不是一种新的JavaEE项目类型.它凌驾于所以的项目类 ...
- Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
在安装MySQL之前,我们先来介绍一下Ubuntu下软件的安装方式.首先回顾下,我们安装JDK,使用的是后缀名为tar.gz的安装包.安装idea,使用的是tar.gz:那有没有别的安装方式呢? 1. ...
- Java全栈程序员之09:IDEA+GitHub
GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装 ...
- [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言
受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天 ...
随机推荐
- windows server远程连接提示“终端服务器超出了最大允许连接”
- 关于input type=file上传图片的总结
最近比较忙,现在来整理一下近期的成果,方便以后再次使用. 关于图片上传的js 和jq jq $("input").change(function () { var $file = ...
- php通过CURL模拟post提交请求
<?php header("Content-type:text/html;charset=utf-8"); class Test{ public function reque ...
- JavaMelody 项目性能监控和调优工具
转自 JavaMelody 可以实现对内存.CPU.线程.JDBC 连接数.HTTP 请求执行时间.SQL 执行时间(分析 Top SQL).方法执行时间(分析系统方法性能瓶颈)等等的监控. 配置方式 ...
- 爬虫3 requests基础
import requests # get实例 # res = requests.get('http://httpbin.org/get') # # res.encoding='utf-8' # pr ...
- HDU 5493 Queue 【线段树】
<题目链接> 题目大意:给你n个人的身高和他前面或者后面身高大于他的人的个数,求一个字典序最小的满足此条件的序列,如果不存在输出“impossible”. 解题分析: 因为要保证字典序最小 ...
- 003.Ansible基础使用
一 Ansible命令用法 Ansible命令行执行方式有:Ad-Hoc.Ansible-playbook两种,Web方式其官方提供付费产品Tower.Ad-Hoc主要用于临时命令的执行,Ansibl ...
- 附006.harbor.cfg配置文件详解
一 必须参数 需要在配置文件中设置这些参数.如果用户更新它们harbor.cfg并运行install.sh脚本以重新安装Harbor,它们将生效. hostname:目标主机的主机名,用于访问UI和注 ...
- java接口签名(Signature)实现方案
预祝大家国庆节快乐,赶快迎接美丽而快乐的假期吧!!! 一.前言 在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题.其中我认为 ...
- [OC] Block的使用
由ControllerA跳转到controllerB,在controllerB中选择一个参数的值,并将它传回给controllerA. 首先,在controllerB的.h文件中写入: @interf ...