首页 > 其他分享 >Spring 通过注解配置bean

Spring 通过注解配置bean

时间:2023-04-23 13:37:15浏览次数:40  
标签:Spring class maven bean user 注解 public User


微信公众号:测试加油站
关注可了解更多的测试开发技术。问题或建议,请公众号留言;
如果你觉得文章对你有帮助,欢迎转发[1]

Spring 通过注解配置bean_spring

Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。

Spring 的java配置是通过这两个注解实现的,@Configuration 和@Bean

@Configuration 作用到类上,相当一个xml配置文件

@Bean 作用于方法上,相当xml里的一个<bean>标签

示例

演示java配置的方式进行配置spring,并且实现springIOC功能

一、首先创建一个spring 工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.njl.springboot.com</groupId>
    <artifactId>njl-springboot</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- 连接池 -->
        <dependency>
            <groupId>com.jolbox</groupId>
            <artifactId>bonecp-spring</artifactId>
            <version>0.8.0.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven-plugin -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-maven-plugin</artifactId>
            <version>1.16.18.1</version>
        </dependency>

    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!-- 资源文件拷贝插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <!-- 配置Tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>


</project>

二、编写一个User对象

@Data
public class User {
    private String userName;
    private Integer age;
    private String password;
}

三、编写一个UserDao 用于与数据库交互

public class UserDao {

    public List<User> queryUserList() {
        List<User> userList = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setUserName("userName+" + i);
            user.setPassword("password+" + i);
            user.setAge(i);
            userList.add(user);
        }
        return userList;
    }
}

四、编写UserService 用于实现User数据操作业务逻辑

@Service
public class UserService {

    @Autowired
    UserDao userDao;

    public List<User> queryUserList(){
        return userDao.queryUserList();
    }
}

五、编写SpringConfig 用于实例化Spring容器

@Configuration
@ComponentScan(basePackages = "com.javaconfig.spring")
public class SpringConfig {

    @Bean
    public UserDao getUserDao(){
        return new UserDao();
    }
}

六、编写测试方法 用于启动Spring容器

public class Main {

    public static void main(String[] args){
        // 通过Java配置来实例化Spring容器
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        
        // 在Spring容器中获取Bean对象
        UserService userService =context.getBean(UserService.class);

       // 调用对象中的方法
        List<User> list=userService.queryUserList();
        for(User user:list){

            System.out.println(user.getUserName()+user.getPassword()+user.getAge());
        }
        // 销毁该容器
        context.destroy();
    }
}

七、测试效果

Spring 通过注解配置bean_maven_02

八、小结

使用Java代码就完美的替代xml配置文件,并且结构更加的清晰。

 

标签:Spring,class,maven,bean,user,注解,public,User
From: https://blog.51cto.com/u_16084838/6217453

相关文章

  • Spring的AOP
    动态代理特点:字节码随用随创建,随用随加载作用:不能修改源码的基础上对方法增强分类:     基于接口的动态代理     基于子类的动态代理基于接口的动态代理:     涉及的类:Proxy     提供者:JDK官方如何创建代理对象:     使用Proxy类中的ne......
  • jmeter之仅一次控制器、If控制器、前置处理器beanshell、后置处理器beanshell
    1、仅一次控制器作用是把请求放到仅一次里面的时候,不管循环数写几次,放到仅一次控制器里的请求都只跑一次,大部分用在登录,一般就登录一次就可以了,还有jdbc连接也是连接一次就可以了,不用重复连接。2、If控制器如果(If)控制器,if控制器如果里面的条件不满足,是不执行里面的请求的,看用户自......
  • SpringBoot 集成 Quartz + MySQL
    Quartz简单使用JavaSpringBoot中,动态执行bean对象中的方法源代码地址=>https://gitee.com/VipSoft/VipBoot/tree/develop/vipsoft-quartz工作原理解读只要配置好DataSourceQuartz会自动进行表的数据操作,添加QuartzJob任务保存QRTZ_JOB_DETAILS、QRTZ_TRIGGERS=>QR......
  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</versi......
  • springcloud gateway
     springcloud gateway网关功能清单  1 为什么需要网关传统的单体架构中只有一个服务开放给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,只能在本地记录每个微服务的调用地址。 无网关的微服务......
  • Spring配置数据库连接
    <beansxmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.sprin......
  • SpringBoot中底层对 /health 的请求是怎么处理的?
     在SpringBoot应用程序中,/health端点是通过HealthEndpointbean来处理的。当您访问/health端点时,SpringBoot会调用HealthEndpointbean的health()方法来检查应用程序的健康状态,并返回相应的响应。HealthEndpointbean是通过HealthEndpointAutoConfiguration自......
  • 【Spring】三级缓存解决循环依赖问题
    1、什么是循环依赖  顾名思义“循环依赖”,举一个简单的例子A中依赖B,B中依赖A,在实例化对象过程中,填充属性阶段A需要B对象,就去创建B对象,创建B对象的时候,发现B依赖了A,于是又去创建A对象,但此时A对象又没有创建结束,一级缓存中找不到,于是线程又去创建一个新的A对象,如此一来,就出现了......
  • springMVC文件上传
    <%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><......
  • spring整合jpa优化
    本篇是针对上一篇《spring整合jpa》文章进行优化1.1.  使用接口代替dao层1.1.1.   删除IpersonDao和PersonDaoImpl1.1.2.   新建PersonDao.javaPersonDao.javapackagecom.morris.dao;importorg.springframework.data.repository.Repository;importcom.morris.enti......