日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring新注解

發布時間:2024/10/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring新注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用原始注解還不能全部替代xml配置文件,還需要使用注解替代的配置如下:
1.非自定義的Bean配置:< bean>
2.加載properties文件的配置:<context:property-placeholder>

3.組件掃描的位置:<context:component-scan >
4.引入其他文件:< import>


新注解
@Configuration:用于指定當前類是一個Spirng配置類,當創建容器時會從該類上進行加載
@ComponentScan:用于指定spring在初始化容器時要掃描的包
作用和spring的xml配置文件中的
<context:component-scan base-package=“com.hao”/>一致
@Bean:使用在方法上,標注該方法的返回值存儲到spring容器中
@PropertySource:用于加載.properties文件的位置
@import:用于導入其他配置類




1.創建UserDao接口及其實現類UserDaoImpl(接口代碼省略)

//<bean id="userDao" class="com.hao.dao.impl.UserDaoImpl"></bean> @Repository("userDao") //相當于上面注釋掉的內容 public class UserDaoImpl implements UserDao {@Overridepublic void save1() {System.out.println("save running...");} }

2.創建UserService接口及其UserServiceImpl實現類(接口代碼省略)

@Service("userService") @Scope("singleton") public class UserServiceImpl implements UserService {@Value("${jdbc.driver}")private String driver;@Autowired//@Qualifier("userDao") //要注入的id值private UserDao userDao;@Overridepublic void sava() {System.out.println(driver);userDao.save1();} }

3.創建spring核心配置類SpringConfiguration(名稱可以隨意)

package com.hao.config;import org.springframework.context.annotation.*;@Configuration //標志類是該Spring的核心配置類 @ComponentScan("com.hao") //掃描類,相當于<context:component-scan base-package="com.hao"/> @Import({DataSourceConfiguration.class}) //引入的DataSourceConfiguration配置類 public class SpringConfiguration{}

4.DataSourceConfiguration配置類

package com.hao.config;import com.mchange.v2.c3p0.ComboPooledDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.PropertySource;import javax.sql.DataSource; import java.beans.PropertyVetoException;@PropertySource("classpath:jdbc.properties")//加載.properties資源文件,相當于<context:property-placeholder location="classpath:jdbc.properties"/> public class DataSourceConfiguration {@Value("${jdbc.driver}") //普通類型的注入private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String username;@Value("${jdbc.password}")private String password;@Bean("dataSource") //spring會將當前方法的返回值以指定名稱存儲到spring容器當中-->相當于xml配置當中的Bean標簽public DataSource getDataSource() throws PropertyVetoException {ComboPooledDataSource dataSource=new ComboPooledDataSource();dataSource.setDriverClass(driver);dataSource.setJdbcUrl(url);dataSource.setUser(username);dataSource.setPassword(password);return dataSource;} }

5.測試

public class UserController {public static void main(String[] args) {ApplicationContext context=new AnnotationConfigApplicationContext(SpringConfiguration.class);UserService service = (UserService) context.getBean("userService");service.sava();} }

使用注解獲取的是AnnotationConfigContext對象字節碼
結果:
com.mysql.cj.jdbc.Driver
save running…

總結

以上是生活随笔為你收集整理的spring新注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。