首页 > 其他分享 >spring注解开发

spring注解开发

时间:2024-05-12 18:19:14浏览次数:23  
标签:name spring public 开发 User 注解 class String

  1. 要想使用注解,必须加入约束和相应配置

    <?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:annotation-config/>
       <!--进行注解驱动注册,从而使注解生效,用于激活那些已经在spring容器里注册过的bean上面的注解,也就是显示的向Spring注册-->
    
    </beans>
    
  2. 之前用xml文件来配置bean,可以用注解进行代替

    • 配置扫描哪些包下的注解
    <!--指定注解扫描包-->
    <context:component-scan base-package="com.kuang.pojo"/>
    
    • 在指定包下编写类,增加注解
    @Component("user")
    // 相当于配置文件中 <bean id="user" class="当前注解的类"/>
    public class User {
        public String name = "zhangsan";
    }
    
    • 使用注解注入属性
    @Component("user")
    // 相当于配置文件中 <bean id="user" class="当前注解的类"/>
    public class User {
        @Value("zhangsan")
        // 相当于配置文件中 <property name="name" value="zhangsan"/>
        public String name;
    }
    
    • @Component三个衍生注解:将类交给Spring管理装配

      为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样。

      • @Controller:web层

      • @Service:service层

      • @Repository:dao层

    • 作用域

    @Controller("user")
    @Scope("prototype")
    public class User {
        @Value("zhangsan")
        public String name;
    }
    
  3. 小结

    • XML可以适用任何场景 ,结构清晰,维护方便

    • 注解不是自己提供的类使用不了,开发简单方便

    • xml与注解整合开发 :

      • xml管理Bean

      • 注解完成属性注入

  4. 基于Java类进行配置

    • 实体类
    //这里这个注解的意思,就是说明这个类被Spring接管了。注解到了容器中
    @Component
    public class User {
    
        @Value("小明")
        public String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name=name;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    '}';
        }
    }
    
    • 将配置文件改为java配置类
    //这个也被Spring容器托管,注册到容器里,因为他本来就是一个@Component,
    // @Component代表这是一个配置类,就和我们之前看的beans.xml是一样的
    @Configuration
    @ComponentScan("com.test.pojo")
    @Import(MyConfig2.class)//将另一个配置类导入
    public class Appconfig_01 {
        //注册一个bean,就相当于我们之前写的一个bean标签,
        //这个方法的名字就相当于bean标签的id属性
        //这个方法的返回值,就相当于bean标签中的class属性
        @Bean
        public User  getUser(){
            return new User();
        }
    }
    
    • 测试类
    public class Mytest {
        public static void main(String[] args) {
            // 如果完全使用了配置类的方式去做,我们就只能通过AnnotationConfig 上下文来获取容器,通过配置类的class对象加载!
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Appconfig_01.class);
            User user = (User) context.getBean("getUser");
            System.out.println(user.toString());
        }
    }
    

标签:name,spring,public,开发,User,注解,class,String
From: https://www.cnblogs.com/hytip/p/18188030

相关文章

  • Mybatis中引用类型不需要加@param()注解
    在MyBatis中,对于引用类型的参数(即Java对象),通常不需要使用@Param注解,除非你在映射文件中使用了多个参数,并且这些参数不是封装在一个对象中的。当你只有一个引用类型的参数传递给MyBatis的映射器方法时,MyBatis会自动将该参数作为唯一参数处理,并可以在SQL映射文件中通过......
  • 整合Spring Cloud + Nacos(服务注册与服务发现) + OpenFeign
    一、事前准备1、本文章不包含Nacos的安装教程,请参考其他文章安装并启动Nacos2、创建一个SpringBoot项目先创建一个简单的SpringBoot项目,引入普通项目中需要用到的相关依赖<dependencies><!--web--><dependency><groupId>org.springframework.boot</groupId......
  • spring中的IOC说明
    什么是IOC?控制反转,把对象创建和对象之间的调用过程交给spring进行管理,为了降低耦合度两种IOC接口BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象ApplicationContext:BeanFactory......
  • spring简介
    Spring是一个轻量级Java开发框架,最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。Spring为企业级开发提供了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是控制反转(IOC)和面向切面编程(aspect-orientedprogramming,AOP)。spring框架包含的功能核......
  • Spring常见注解
    Spring常见注解注解说明@Component使用在类上用于实例化Bean@Controller使用在类上用于实例化Controller@Service使用在类上用于实例化Service@Repository使用在类上用于实例化Repository@Autowired使用在字段上用于根据类型依赖注入@Qualifier结......
  • Springboot自动配置原理
    在SpringBoot项目中的引导类上有一个注解@SpringBootApplication,这个注解是对三个注解进行了封装,分别是:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan其中@EnableAutoConfiguration是实现自动化配置的核心注解。该注解通过@Import注解导入对应的配......
  • FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
    ​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。libuavs3d是AVS......
  • 浅谈Vue.js与原生开发
    在现代的Web开发中,前端框架的选择是至关重要的。Vue.js作为一款流行的前端框架,与传统的原生开发相比,有许多明显的区别。模版语法与HTMLVue.js使用特殊的模板语法来创建动态视图,这样开发者可以更方便地表达复杂的逻辑。通过指令(例如v-if、v-for等)和模板表达式,Vue.js简化了数据的......
  • Android开发&Kotlin学习笔记
    为了做《基于安卓定位的考勤系统》,学了一些杂乱的知识,在这里简单记录一下。除了在C#桌面应用开发中感性的体会到了些XML布局的知识以及课上学习的Java知识,其他也算是零基础了。GoogleAndroidDeveloper的课程2023/10/25:跟着官方文档先快速入门一下基本内容。截至目前来看官方......
  • SpringBoot速记
    本篇以SpringBoot快速构建一个基础项目,在构建的同时记录相关的知识。常见的架构图: 其中,config中可以引入第三方的jar包controller中存放控制类一个简单的例子如下: mapper中存放对数据库的操作接口 pojo中是实体对象类,常与数据表对应 service中存放服务类:......