Java spring 通过注解方式创建对象的示例详解

作者:-耿瑞- 时间:2023-07-03 01:18:05 

java spring 通过注解方式创建对象

首先 我们要搞清楚一个基础概念
什么是注解?

注解
可以说是代码里的一些特殊标记。
格式是 @() 里面可以有 属性=属性的值 可以有多个属性值 多属性值之间 用逗号隔开
注解 可以加载很多东西上面 例如 方法上面 属性上面 还可以在类上面
而 注解方式的目的 或者好处 在于简化xml的配置操作

然后 我们来代码走一下

我们创建一个java项目 引入spring 的几个基础包

然后 需要做注解方式的话 你需要多引入一个 JAR包

Java spring 通过注解方式创建对象的示例详解

aop包中有一些封装 为注解做了一些功能

然后我们在src下创建 一个包 叫 Bean 在 Bean包下再创建一个包 叫 UserData
然后 在src下创建配置文件 bean.xml 参考代码如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
       <context:component-scan base-package="Bean.UserData"></context:component-scan>
</beans>

这里 我们利用了 context:component-scan开启扫描 spring 如果你想用注解 一定要把包的 项目扫描打开
不然他是找不到注解的

那么 这里 我们指定扫描的包就是 Bean下的UserData 由base-package属性指定

然后 我们了解一下 创立类对象的注解 有四个
@Component
@Service
@Controller
@Repository
他们都能实现创建对象这个功能

然后 我们在UserData包下创建一个user类
参考代码如下

package Bean.UserData;

import org.springframework.stereotype.Component;

//最上面这个注解  就相当于之前xml中的bean声明  value就是当时的id class  就是当前类的路径
//类上的注解  value可以不写  不写用默认值  默认值就是类的名字
//但如果你的类名名首个字母是大写 默认值会将首字母变成小写
@Component(value = "userService")
public class user {
   public String toString(){
       return "我是user对象";
   }
}

注解上面的注释我写的还是比较认真的 大家可以好好看一下

然后我们创建测试类来试一下效果

在src下编写测试类 我这里直接叫text 参考代码如下

import Bean.UserData.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class text {
   public static void main(String args[]) {
       ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
       User user = context.getBean("userService", User.class);
       System.out.println(user);
   }
}

运行结果如下

Java spring 通过注解方式创建对象的示例详解

也是成功输出了user 带出了他的toString

指定xml 去扫描 Bean下的UserData包 读取了 所有有注解的文件 读到了user 通过注解声明的userService bean对象

补充:Spring注解开发(创建对象)

@Component:用于创建对象
@Component:用于把当前类存入Spring容器中
value:用于指定bean的id,不写时,默认是当前类名的首字母小写
@Component(value=&ldquo;accountService&rdquo;)

实体类:

@Component(value="accountService")
public class AccountServiceImpl implements AccountService{
   public void saveAccount() {
       System.out.println("sevice方法被执行了....");
   }
}

bean.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">
   <!--用于指定要扫描的包-->
   <context:component-scan base-package="com.hh">
   </context:component-scan>
</beans>

测试类:

public class Client {
   public static void main(String[] args) {
       ApplicationContext context =
               new ClassPathXmlApplicationContext("bean.xml");
       AccountService service =
               context.getBean("accountService", AccountService.class);
       System.out.println(service);
   }
}

@Repository
@Service
@Controller
以上三个注解和@Component作用相同

来源:https://blog.csdn.net/weixin_45966674/article/details/128892717

标签:java,spring,注解,创建对象
0
投稿

猜你喜欢

  • SpringCloud OpenFeign 服务调用传递 token的场景分析

    2022-12-26 22:24:07
  • android使用gesturedetector手势识别示例分享

    2023-08-08 15:06:11
  • Spring的事务管理你了解吗

    2023-02-05 19:44:16
  • Java代码实现简单酒店管理系统

    2023-11-21 03:38:57
  • c#测试本机sql运算速度的代码示例分享

    2022-10-18 00:04:24
  • 什么是Java多线程,如何实现

    2022-08-29 15:20:28
  • Android实现自定义华丽的水波纹效果

    2023-10-03 23:12:50
  • 不知道面试会不会问Lambda怎么用(推荐)

    2021-07-27 21:37:30
  • 详解idea从git上拉取maven项目详细步骤

    2023-04-23 08:51:56
  • Android 优化之卡顿优化的实现

    2022-03-03 21:34:25
  • Java自定义注解用法实例小结

    2023-03-26 09:13:51
  • Java实现微信红包分配规则

    2021-06-16 09:18:07
  • Java基础学习之ArrayList类概述与常用方法

    2023-03-13 02:15:24
  • Android编程自定义组件实例详解

    2022-12-20 13:11:58
  • C# NullReferenceException解决案例讲解

    2023-01-24 07:38:10
  • Java框架---Spring详解

    2021-07-09 14:27:30
  • 修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解

    2021-08-21 21:18:44
  • 详细了解C语言二叉树的建立与遍历

    2021-08-17 10:24:01
  • java使用Jsoup组件生成word文档

    2022-10-28 12:44:16
  • Android倒计时控件 Splash界面5秒自动跳转

    2023-09-24 18:41:16
  • asp之家 软件编程 m.aspxhome.com