Spring-Day4

12.HelloSpring

复制代码
<?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:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<!--使用spring来创建对象,在spring这些都称为bean
    类型 变量名 = new 类型();
    Hello hello = new Hello();
​
    id = 变量名
    class = new 的对象
    property 相当于给对象中是属性设置一个值
​
-->
​
    <bean id="hello" class="com.itheima.App">
        <property name="str" value="Spirng"/>
    </bean>
</beans>

接下来,将对象取出来

复制代码
public class MyTest {
    public static void main(String[] args) {
        //获取Spring的上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //我们的对象都在Spring中管理了,要使用去里面取
        App hello =(App)context.getBean("hello");
        System.out.println(hello.toString());
    }
}

通过spring创建对象

复制代码
<?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:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
​
    <bean id="mysqlImpl" class="com.itheima.dao.UserDaoMysqlImpl"/>
    <bean id="UserServiceImpl" class="com.itheima.service.UserServiceImpl">
<!--
      ref:引用spring容器中创建好的对象
      value:具体的值,基本数据类型
      -->
        <property name="userDao" ref="mysqlImpl"/>
    </bean>
</beans>
          
          
     
//在Mytest中取出
          public class MyTest {
    public static void main(String[] args) {
        //获取ApplicationContext:拿到Spring 的容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //容器有了之后,需要什么get什么
        UserServiceImpl userService = (UserServiceImpl) context.getBean("UserServiceImpl");
        UserServiceImpl.getUser();
    }
}

到了现在,我们彻底不用在程序中去改动了,要实现不同的操作,只需要在xml配置文件中修改,所谓的Ioc,一句话就是:对象由Spring来创建,管理,装配!

13.IOC创建对象的方式

  1. 使用无参构造创建对象,默认

  2. 假设要用有参构造创建对象

    复制代码
    //1.下标赋值
    <bean id="user" class="com.itheima.pojo.User">
        <constructor-arg index="0" value="Zkw"/>
    </bean>
        
    ​
    //2.通过类型创建(不建议使用)
    <bean id="user" class="com.itheima.pojo.User">
        <constructor-arg type="java.lang.String" value="Zkw"/>
    </bean>
        
        
    //3.通过参数名
    <bean id="user" class="com.itheima.pojo.User">
        <constructor-arg name="name(参数名)" value="Zkw"/>
    </bean>

总结:在配置文件加载的时候,容器中管理的对象就已经初始化了

13.注解实现自动装配

  1. 导入约束:context约束

  2. 配置注解的支持:context:annotation-config

复制代码
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd"
    //开启注解支持
    <context:annotation-config>
</beans>
        
        
//具体的修改方法:
  //将xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"修改为
  //xmlns:context="http://www.springframework.org/schema/context"
  //然后复制后两行,把beans改成context即可,aop导入也是如此

@Autowired

直接在属性上使用即可,也可以在set方法上使用

使用Autowired 我们可以不用编写set方法了,前提是自动装配属性在IOC容器中存在,且名字正确

可以配合**@Qualifier(value="")**来指定名字

@Resource也可以,它会先查找名字,没有对应名字再去找对应的类型,也可以加个name属性来指定

相关推荐
快乐肚皮9 分钟前
Java的Arrays.sort():排序算法与优化分析
java·排序算法·归并排序·快速排序
西洼工作室14 分钟前
Spring Boot常用依赖大全:从入门到精通
java·spring boot·后端
北i24 分钟前
IOT集群扩容实践:问题剖析与解决策略
后端·物联网·kafka
Hanson Huang26 分钟前
【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(2)——Prompt(提示词)
java·人工智能·spring·spring ai
加油冲丫32 分钟前
Java过滤器的基本概念
java·开发语言·后端·servlet
4060ti1 小时前
gradle 入门
java·gradle
.生产的驴1 小时前
SpringBoot 服务器监控 监控系统开销 获取服务器系统的信息用户信息 运行信息 保持稳定
服务器·spring boot·分布式·后端·spring·spring cloud·信息可视化
lpfasd1232 小时前
状态模式(State Pattern)
java·设计模式·状态模式
代码老y2 小时前
前端开发中的可访问性设计:让互联网更包容
java·服务器·前端·数据库
jakeswang2 小时前
Java 项目中实现统一的 追踪ID,traceId实现分布式系统追踪
java·后端·架构