Spring的基本用法

Spring优点:

(1)低侵入式设计,代码的污染极低。

(2)依赖注入提高了组件之间的解耦。依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。

(3)AOP支持将一些通用任务如安全、事务、日志等进行集中式处理,提供了更好的复用。


Spring容器

ApplicationContext 

ClassPathXmlApplicationContext


依赖注入的方式

(1)设值注入:使用属性的setter方法来注入被依赖的实例。

(2)构造注入:使用构造器来注入被依赖的实例。

设值注入优点:

(1)通过setter方法设定依赖关系显得更加直观、自然。

(2)对于复杂的依赖关系,采用构造注入会导致构造器过于臃肿,难以阅读。Spring在创建Bean实例时,需要同时实例化其依赖的全部实例,导致性能下降。使用设值注入能避免这些问题。

构造注入优点:

(1)构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。

(2)对于依赖关系无需变化的Bean,构造注入更有好处。依赖关系在构造器中设定,则只有组件的创建者才能改变组件的依赖关系。

设值注入为主,构造注入为辅。


ApplicationContext的事件机制是观察者设计模式的实现。


在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml文件中配置一个Listener,该Listener将会负责初始化Spring容器。前端MVC框架可以直接调用Spring容器(无需访问Spring容器本身)。在这种情况下,容器中Bean处于容器管理下,无需主动访问容器,只需接受容器的注入管理即可。Bean实例的依赖关系通常由容器动态注入,无需Bean实例主动请求。


容器中Bean的作用域

(1)singleton:单例模式,在整个Spring Ioc容器中,使用singleton定义的Bean将只有一个实例。

(2)prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例。

(3)request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。

(4)session:对于每次HTTP Session,使用session定义的Bean都将产生一个新实例,即每次HTTP Session都将产生不同的Bean实例。

(5)global session:每个全局的HTTP Session对应一个Bean实例。

Spring默认使用singleton作用域。


使用自动装配注入合作者Bean

autowire属性

no:不使用自动装配。这是默认的配置。

byName:根据属性名自动装配。

byType:根据属性类型自动装配。

constructor:与byType类似,区别是用于构造注入的参数。

autodetect:BeanFactory根据Bean内部结构,决定使用constructor或byType。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cache是Spring框架提供的一个缓存抽象层,可以方便地在应用中添加缓存功能。下面是Spring Cache的基本使用方法: 1. 添加依赖:在项目的pom.xml文件中添加Spring Cache的依赖项。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> ``` 2. 配置缓存管理器:在配置类中添加@EnableCaching注解,并配置缓存管理器。 ```java @Configuration @EnableCaching public class CacheConfig { @Bean public CacheManager cacheManager() { SimpleCacheManager cacheManager = new SimpleCacheManager(); cacheManager.setCaches(Arrays.asList(new ConcurrentMapCache("cacheName"))); return cacheManager; } } ``` 3. 在需要缓存的方法上添加缓存注解:使用@Cacheable注解来标记需要进行缓存的方法。 ```java @Service public class MyService { @Cacheable("cacheName") public String getData(String key) { // 这里是从数据库或其他外部资源获取数据的逻辑 return data; } } ``` 4. 测试缓存功能:在测试类中调用被缓存的方法,多次调用可以看到第一次调用时会执行方法体,后续调用则从缓存中获取结果。 ```java @SpringBootTest class CacheTest { @Autowired private MyService myService; @Test public void testCache() { String result1 = myService.getData("key"); String result2 = myService.getData("key"); // result1和result2的值应该相同,第二次调用从缓存中获取结果 } } ``` 以上是Spring Cache的基本使用方法,通过配置缓存管理器和使用@Cacheable注解,可以轻松地在Spring应用中添加缓存功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值