Spring初学者必看(强力总结)—Spring环境搭建和一些基本配置

先建立一个基础Maven工程 导入Spring Jar包


<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-webmvcartifactId>
    <version>5.2.0.RELEASEversion>
dependency>

<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-jdbcartifactId>
    <version>5.2.0.RELEASEversion>
dependency>

在recourse文件夹下建立 beans.xml 文件


<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">

beans>

示例 : bean对象添加:

<bean id="mysqlImpl" class="com.kuang.dao.UserDaoMysqlImpl">bean>
<bean id="oracleImpl" class="com.kuang.dao.UserDaoOracleImpl">bean>

<bean id="UserServiceImpl" class="com.kuang.service.UserServiceImpl">
    
    <property name="userDao" ref="mysqlImpl">property>
bean>

测试:

//解析beans.xml文件,生成管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//getBean:参数即为spring配置文件中bean的id
Hello hello = (Hello) context.getBean("hello");
System.out.println(hello.toString());

IoC创建对象的方式

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

  2. 假设我们要使用有参构造创建对象。

    1.下标赋值。

    
    <bean id="user" class="com.kuang.pojo.User">
        <constructor-arg index="0" value="憨批" />
    bean>
    

    2.类型赋值。

    
    <bean id="user" class="com.kuang.pojo.User">
        <constructor-arg type="java.lang.String" value="大憨批" />
    bean>
    

    3.参数名赋值。

    
    <bean id="user" class="com.kuang.pojo.User">
        <constructor-arg name="name" value="臭憨批" />
    bean>
    

    使用注解开发

在spring4之后,要使用注解开发,必须要保证aop的包导入了。

使用注解需要导入context约束,增加注解的支持!


<context:component-scan base-package="com.kuang.pojo"/>
  1. bean

  2. 属性如何注入

    //等价于
    //@Component 组件
    @Component
    public class User {
        //相当于
        public String name;
        @Value("小憨批")
        public void setName(String name){
            this.name = name;
        }
    }
    
  3. 衍生的注解

    @Component有几个衍生注解,我们在web开发中,会按照mvc三层架构分层!

    • dao【@Repository】
    • service【@Service】
    • controller【@Controller】

    这四个注解功能都是一样的,都是代表将某个类注册到Spring容器中,装配Bean!

  4. 自动装配

    -@Autowired:自动装配通过类型,名字
    	如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value="xxx")
    -@Nullable:字段标记了这个注解,说明这个字段可以为null
    -@Resource:自动装配通过名字,类型
    
  5. 作用域

    @Scope("singleton")
    public class User {
        //相当于
        public String name;
        @Value("小憨批")
        public void setName(String name){
            this.name = name;
        }
    }
    
  6. 小结

    xml与注解:

    • xml更加万能,适用于任何场合!维护简单方便。
    • 注解,不是自己的类使用不了,维护相对复杂!

    xml与注解最佳实践:

    • xml用来管理bean;
    • 注解只负责完成属性的注入;
    • 我们在使用的过程中,只需要注意一个问题:必须让注解生效,就需要开启注解的支持。
     
    <context:component-scan base-package="com.kuang"/>
    <context:annotation-config/>
    

你可能感兴趣的:(Spring,java)