发表于: 2018-04-20 23:35:11

1 554


今日完成:

在完成jdbc和spring和整合过程中发现很多标签和属性值不太理解,导致最后没能完成,尝试了很长时间,也找不到原因。便后头看了一下spring的基础知识点。一些知识进行总结。


spring通过对bean的管理实现依赖注入。

通俗点说,spring对bean,进行管理时,创建对象不需要new代码的出现,而是交给spring进行完成。通过这个功能完成类文件间的互相关联。

例如我们在dao的测试类里常出现的:

Interface a =new Implement();

a.Select(user);

在这里接口和实现类的功能交织在一起,并没能完全分离,而我们引入结口的便是为了,让实现功能尽量依赖抽象类而不依赖具体的实现类。

spring对bean进行管理主要通过两种方式:

1.使用配置文件方式实现;

2.使用注解方式实现;

通过配置文件实例化bean对象共有三种方式,

1.1无参构造

创建对象时,调用类中的无参构造函数,在xml文件中使用方式

<bean name="c" class="spring.pojo.Category">

         无参构造

   <property name="name" value="category 1" />
</bean>

1.2使用静态工厂

在前面的mybatis整合中,定义连接池是用的便是这种方法(了解即可)

创建一个工厂类,在工厂类中提供一个静态方法,这个方法返回类的对象;调用工厂类的方法时候,直接使用   类名.方法名   即可调用。 

1.3使用实例工厂

与静态工厂的不同,即是工厂类中提供的普通方法。(了解即可)

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method = "close" >

1.4.spring配置文件中bean标签常用的属性

1.4.1.id属性:根据id属性值得到配置对象。

在spring配置文件中会有多个bean标签,但id属性值不能相同,具有唯一性(id属性值约束:唯一),名字必须以字母开头,不能含有特殊符号。

1.4.2class属性,要创建对象类的全路径。

1.4.3scope属性:bean的作用范围。 

singleton:创建的对象是单例的,也是scope属性的默认值。 

prototype:创建的对象是多实例的。

globalSession:用在单点登录(即SSO,single sign on)上

1.4name属性:name属性的功能和id属性是一样的。name属性和id属性区别是:在id属性值里面不能有特殊符号,在name属性值里面可以添加特殊符号。


Spring中Bean的属性注入

构造方法的方式注入属性
set方法的方式注入属性
Spring的属性注入:对象类型的注入

<property name="configLocation" value="classpath:mybatisconfig/SqlMapConfig.xml"/>
<!--指定数据源,这里的ref(引用)上文的dataSource的路径-->
<property name="dataSource" ref="dataSource"/>

value 赋值,简单类型   ;ref  引用,复杂类型,对象


jdbcTemplate的使用

@Transactional
@Repository
public class UserImplet implements UserService {
private JdbcTemplate jdbcTemplate;
   @Resource
   public void setDataSource(DataSource dataSource){
this.jdbcTemplate=new JdbcTemplate(dataSource);
   }

@Override
   public void St_info_Insert(User user) {
jdbcTemplate.update(
"INSERT INTO st_info(id,name,age)VALUE (?,?,?)",
               new Object[]{user.getId(),user.getName(),user.getAge()},
               new int[]{Types.INTEGER,Types.VARCHAR,Types.INTEGER}
);


   }

明日计划:

数据库操作功能的完善


困难:

spring注解式,自动扫描功能没有成功启用;待解决


收获:

学习了spring的bean管理



返回列表 返回列表
评论

    分享到