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全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
-
Java全栈程序员之08:MAVEN+JAVA配置
-
Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目
-
Java全栈程序员之06:IDEA中MAVEN项目依赖及运行
-
Java全栈程序员之01:做个Linux下的程序猿
-
Java全栈程序员之08:MAVEN+JAVA配置
-
Java全栈程序员之06:IDEA中MAVEN项目依赖及运行
-
Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目
-
Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
-
Java全栈程序员之01:做个Linux下的程序猿