美文网首页
Java全栈程序员之08:MAVEN+JAVA配置

Java全栈程序员之08:MAVEN+JAVA配置

作者: 码农星球 | 来源:发表于2019-03-12 16:01 被阅读0次

            从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,是在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配置

          本文链接:https://www.haomeiwen.com/subject/khjnpqtx.html