栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架简单学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架简单学习

Spring学习大纲

1.spring的基础配置2.set注入

2.1.p命名注入和c命名注入 3.Junit4.Bean的作用域

1.prototype :原型模式,简单来说就是每次去get对象的时候都会创建一个新的对象。具体可以看官方给出的图**hashcode**:值来源于这个对象的内部地址转换成的整型值。(网上找的,然后再深入很麻烦没有再看)2.singleton:单例模式,从容器中get的对象是同一个(spring的default) 5.bean自动装配6 使用@Comment组件

1.spring的基础配置
    xml注入的时候,value的值是给构造函数,创建时候的,并不是指定的一个name变量给它赋值getBean ,Bean标签可以多别名import,用来合并xml配置(一般用于团队,每个人开发不同类需要一起配置时候)
    将其余的xml配置文件
    集合到一个xml中
2.set注入

1.普通注入
2.bean注入
3.集合注入
4.list注入
5.map注入
6.set注入
7.空注入
8.props注入(infomation)




	
    
        
    

    
    	
        
        
         
		
        
            
                c plus plus
                java
                python
            
        
		
        
            
                
                
                rap
                篮球
            
        
        
        
            
                
                
            
        
		
        
            
                DOTA
                LOL
                CF
            
        
		
        
            
        
		
        
            
                 202105100
                小俊
                man
            
        

    



2.1.p命名注入和c命名注入

在xml配置文件中引入命名规则

		xmlns:p="http://www.springframework.org/schema/p"
        xmlns:c="http://www.springframework.org/schema/c"

我很奇怪的一点是:我明明在我的idea中引入了两条规则,并且在setting里设置了URL。但是还是不能使用。但这两个注入规则不作为学习的重点。

3.Junit

测试@Test
后续有时间再返回来详细讲解这个Junit,只要记得它的用法就可以了。

4.Bean的作用域

下面列出一张官方的图片重点学习bean作用域有哪些

注:看不清的字体,大家可以去官网查一下(链接附上)

1.prototype :原型模式,简单来说就是每次去get对象的时候都会创建一个新的对象。具体可以看官方给出的图


我们可以来看看在代码的具体实现

  

回到test测试类,测试一下我们在容器中取得的对象,是同一个对象还是多个对象

	@Test
    public void test(){

  
        ApplicationContext context = new ClassPathXmlApplicationContext("userbeans.xml");

        user user1 = (user) context.getBean("user");

        user user2 = (user) context.getBean("user");

        System.out.println(user1==user2);

        System.out.println(user1.hashCode());

        System.out.println(user2.hashCode());

        //原型模式
    }
hashcode:值来源于这个对象的内部地址转换成的整型值。(网上找的,然后再深入很麻烦没有再看)

我们可以看看对象的地址是否一样来判断生成的是多个对象还是单个对象。

显然user1和user2是两个不同的对象

2.singleton:单例模式,从容器中get的对象是同一个(spring的default)

官网给出的图,我觉得对我们理解singleton可以更加直观

   
public void test(){

        //单例模式

        ApplicationContext context = new ClassPathXmlApplicationContext("userbeans.xml");

        user user1 = (user) context.getBean("user");

        user user2 = (user) context.getBean("user");

        System.out.println(user1==user2);

        System.out.println(user1.hashCode());

        System.out.println(user2.hashCode());
    }

我们可以看看我们的输出结果

输出的地址一致说明我们get到的user1和user2是同一个对象。
对spring的理解:我们在使用这些对象的时候。xml中配置的文件,会给我们把这些对象加入到IOC容器中,我们去取这些对象就行了

5.bean自动装配

1.AutoWire:1.ByName,2.ByType

byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的bean idbyType:会自动在容器上下文中查找,和自己对象属性类型相同的bean!

@Autowired:它会自动寻找id相同的bean,说白了就是通过byName寻找
@Qualifier(value=" "):会寻找到与value相同的beanId的对象
**@Autowired(**required = false)


@Resource被弃用


6 使用@Comment组件
    @Comment组件要加在类上@Value(“Ethan”),可以实现注入、getBean("")的使用一般是类名的小写。

MVC三层架构
DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此

    dao层:@Repository(仓库的意思)service层,@Servicecontroller @Controller(web层)

这四个注解的功能是一样的,都是将某一类注册到spring中装配bean

作用域
@Scope

    prototype,原型模式singleton,单例模式

小结:
1.xml更加万能
2.注解,不是注解的类使用不了
3.xml用来管理bean
4.注解只负责完成属性注入

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/728052.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号