Spring笔记

1.使用spring需要加的jar包

commons-logging

spring-core

spring-beans

spring-expression

spring-context

 

 

 

 图中可以看出spring-context是最底下的包 只需要引入

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.25.RELEASE</version>
      </dependency>

2.引入xml文件的方式

BeanFactory bf = new ClassPathXmlApplicationContext("Spring.xml");
BeanFactory bf = new FileSystemXmlApplicationContext("D:\Spring.xml");
BeanFactory bf = new ClassPathXmlApplicationContext("classpath*:Spring*");//引入以Spring开头的文件

3.Spring.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"
       xmlns:p="http://www.springframework.org/schema/p"
       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.1.xsd
">

<!--    启用注解,可以不加,会自动开启-->
    <context:annotation-config></context:annotation-config>
<!--告诉他去找哪些路径下的类-->
    <context:component-scan base-package="com.blb"></context:component-scan>

    <bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:6666/haha"></property>
        <property name="user" value="root"></property>
        <property name="password" value="123456"></property>
    </bean>

<!--property可用p代替-->
    <bean id="c3p02" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    p:driverClass="com.mysql.jdbc.Driver"
    p:jdbcUrl="jdbc:mysql://localhost:6666/haha"
    p:user="root"
    p:password="123456"
    >
    </bean>





    <!--    注入方式2构造器注入,index标识第几个参数,ref是参数类型,value传入的值-->
    <bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner">
        <constructor-arg index="0" ref="c3p0"></constructor-arg>
    </bean>

<!--    注入前提属性要有set方法-->
    <bean id="pink" class="com.blb.dto3.Pink">
        <property name="pid" value="1"></property>
        <property name="color" value="grenn"></property>
    </bean>


</beans>

4.加注解的方式加入ioc容器

@Service 用来标注业务层 只要标注了改注解的类 会自动加入到ioc容器
@Controller 控制层
@Repository 持久层
@Component 其他
不强制对应
自己写的类可以加注释, jar包里的类不能用,只能用原始的方式加到ioc容器


@Autowired 就是bytype 加在属性上
@Resource 就是byname 现根据名字找。找不到再根据类型找

controller:

package com.blb.controller;

import com.blb.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    public UserService getUserService() {
        return userService;
    }

    public void setUserService(UserService userService) {
        this.userService = userService;
    }
}

service:

package com.blb.service;

import com.blb.dao.UserDao;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserService {
    @Resource
    private UserDao userdao;

    public UserDao getDao() {
        return userdao;
    }

    public void setDao(UserDao userdao) {
        this.userdao = userdao;
    }
}

dao:

package com.blb.dao;

import com.blb.util.C3p0Util;

import org.apache.commons.dbutils.QueryRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

@Repository
public class UserDao {

    @Autowired
    private QueryRunner runner;
    public QueryRunner getRunner() {
        return runner;
    }

    public void setRunner(QueryRunner runner) {
        this.runner = runner;
    }
}

5.用配置文件Bean的方式加入ioc容器

<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">


    <bean id="userDao" class="com.blb.dao.UserDao" autowire="byType">

    </bean>

    <bean id="userService" class="com.blb.service.UserService" autowire="byName">

    </bean>

    <bean id="userController" class="com.blb.controller.UserController" autowire="byType">

    </bean>
</beans>

6.测试运行

@Test
    public  void buildIOC(){
        BeanFactory bf = new ClassPathXmlApplicationContext("Spring.xml");

        UserController controller=(UserController)bf.getBean("userController");
        QueryRunner runner = controller.getUserService().getDao().getRunner();

        try {
            List<User> query = runner.query("select * from t_user",new BeanListHandler<User>(User.class));
            for(User user:query){
                System.out.println(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

 

posted @ 2020-04-11 19:39  几个Ak  阅读(154)  评论(0编辑  收藏  举报