public class User {
private String userName;
private String userPass;
private Integer userId;
public User(){
super();}
public User(String userName, String userPass,Integer userId){
super();
this.userName= userName;
this.userPass= userPass;
this.userId= userId;}
public String getUserName(){
return userName;}
public void setUserName(String userName){
this.userName= userName;}
public String getUserPass(){
return userPass;}
public void setUserPass(String userPass){
this.userPass= userPass;}
public Integer getUserId(){
return userId;}
public void setUserId(Integer userId){
this.userId= userId;}
@Overridepublic String toString(){
return "User [userName="+ userName +", userPass="+ userPass +", userId="+ userId +"]";}}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
3)编写Dao层,使用List集合模拟数据库,实现数据交互
public class UserDao {
public List<User> queryAll(){
List<User> users = new ArrayList<User>();//添加用户,模拟数据库for(int i =1;i <11;i++){
User user = new User("张三"+i,"123456", i);
users.add(user);}//返回用户return users;}}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
4)编写Service层,实现用户业务逻辑
public class UserService {//注入Dao层对象@Resourceprivate UserDao userDao;
public List<User> queryAll(){
return userDao.queryAll();}}
1.
2.
3.
4.
5.
6.
7.
8.
小贴士:我们这里的dao层和service层没有写接口
5)编写Spring配置类,替代XML文件,用于实例化Spring容器
//说明该类是一个配置类,相当于一个xml文件
@Configuration
//扫描包
@ComponentScan(basePackages="com.stt")
public class SpringConfig {//创建dao层对象@Beanpublic UserDao userDao(){
return new UserDao();}//创建Service对象@Beanpublic UserService userService(){
return new UserService();}}
public class SpringApplication {
public static void main(String[] args){//获取SpringConfig类中的所有配置
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);//获取Service对象
UserService userService = context.getBean(UserService.class);//调用方法
List<User> list = userService.queryAll();
for (User user : list){
System.out.println(user);}//销毁容器
context.close();}}
//说明该类是一个配置类,相当于一个xml文件
@Configuration
//扫描包
@ComponentScan(basePackages="com.stt")//读取外部配置文件
@PropertySource(value="classpath:resource/db.properties")
public class SpringConfig {//创建dao层对象@Beanpublic UserDao userDao(){
return new UserDao();}//创建Service对象@Beanpublic UserService userService(){
return new UserService();}//获取文件中的值,使用Value注解赋值给变量保存起来//注意:我们使用${}表达式获取值,参数与配置文件中的键一致@Value("${driver}")private String driver;
@Value("${url}")private String url;
@Value("${user}")private String user;
@Value("${pass}")private String pass;//配置数据库连接池@Beanpublic DataSource dataSource(){//创建DBCP连接池对象
BasicDataSource dataSource = new BasicDataSource();//设置属性
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(pass);
return dataSource;}}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
测试类:
public class SpringApplication {
public static void main(String[] args){//获取SpringConfig类中的所有配置
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);//获取Service对象
UserService userService = context.getBean(UserService.class);//获取数据源对象
BasicDataSource dataSource =(BasicDataSource)context.getBean("dataSource");
System.out.println(dataSource);//调用方法/*List<User> list = userService.queryAll(); for (User user : list) { System.out.println(user); }*///销毁容器
context.close();}}