Java配置方式读取外部的资源配置文件
通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法:
package cn.qlq; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource; @Configuration // 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "cn.qlq") // 配置扫描包
@PropertySource(value = { "classpath:jdbc.properties", "xxxxx", "yyyyy" }, ignoreResourceNotFound = true)
public class SpringConfig { @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
public UserDao getUserDAO() {
return new UserDao(); // 直接new对象做演示
} }
问题:
1.读取多个配置文件:
aaarticlea/png;base64,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" alt="" />
2.如果文件不存在忽略错误:
aaarticlea/png;base64,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" alt="" />
打开@PropertySource注解源码可以看到:
aaarticlea/png;base64,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" alt="" />
-------------------- 配置数据库连接池例子-------------
0.目录:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARsAAAE9CAIAAAC0ulFdAAAgAElEQVR4nO2d+1cUV9rv+084c973PStrzXvOOpNzXo9nnJlMJlFJmxhHYibJyXjJxRExrwQnbYhMkjFKuAiIXGxFpRUvgDcCggjegdaIiEq4iKBoFJBuRRBtpLsBFaS4mDo/VNO9q2pXdXV3Nb2r+/msvVx09b5Utc+3967dtb9bRcvNvkMnng0OoUdMfc9CN56QvSEAIBCVh+Wnhu9emHiEpumFiUemhu+mabrtdnNmdj6ap9v8NDgqH18eAPwLGRQ1NXz3qswzzB80TfdWx2dvilm7bvPadZs3bMx83GuVX1EGnVql1hlkqEWjl+WEAMCGDIpakHCE6akYRdFPLtvSi+EXY8/7+5+AooDAQQZFHbnYMjV89/GfWm2K6quwJZpmbp9IHfXJpShQJuDAuaKqqqq0Wq0LVfaesqVfXgRH5f/YeDft8E+fbznt/jl6C1AUID9OFFVZWTlt2rQpU6YIZVi15gf6YSGTXjwoqDhxaH1K0Tff5X/zXX5L68PTde1zvst7N7rgStvD46eu84sbdGqVDSYmmejUa9hHWcfVOoMjhvUalVqns2VHBoL2GtQ6nUZghCjUFlqcfRhzHDni+TgUUD5iimLktGTJEhFFfabJpTv30Z37htv3x28oyjx5+1TnCyaVdb2wUr8w2VoeD69cfYxbGPPlzkhs4qBegyqNq6+JHEgWJqgdxWwFhRWFa0uvQUs4Pw59FOBAUFF2OYWEhIgoqv5q5zPDub6m3BGrsaG9v7h1hJ/2Vlu+WKN/8PAJrzTzBY/GOyc67S/Zxzl9lMF+VK0zsI+xsiAdl0G4LU5xp8dBUQACXlGonMQVNfLM2lkUOtRR1FWynBoZOdQ0mNfISplnHy/95lxn91Phc2D6CtEol0dRmHalKQpXrf04KApAwCtKq9VOQUhLSxMqb67PNpatjlv6h3unIvtvnbx853nOxQF72nik689LSzseCMjJoNNxh3EGnZozYsONrMQV5dKoD9MWb3SHdHG446AowIFHs+djQ33tBxZ01iYtnKp61pJuyPvEcNf6p4VnX1t45rVFZ98MObfwy7OWvmGRGnjTAgadWqXR8CcLXFIUOuPhbGYC0xbtyswE0hrMTAAeKurRZd2D0rChloQT6e9Rbes7joZarpd4dj5e+L4XHPUBgPx4pKjW3MVPG6Oft6Rkfj19zKh90hDVXvi5Z+cji6IMOrW9DvZQDQC8jEeKurb97YH6qBcdGd21cS86MnovRLb8EOLZ+cjURyG/c4GcgMnEI0WZb5Vf2Ty9Lu0VJjXq5vS1V8l0YgCgSDx9rg8AABRQFADICSgKAOQEFAUAcgKKAgA5AUUBgJyQpaiDra0Z1c2ryuq+PdeQe+6ir09ncpjcxwLlMRQABCFFUQdvdsSca9xfcar/8Z3x4f6LnTdW/Hj5qyPVYmVwyyt4T+FxnkJX8YMXfa6W5oUc8hK7NtHVSvhIVJRY6y4AivIy8iuqpqZmcHDQ1VLjYy+6uprvPmwee/KAenj71uDD0J9bp2Y2bN+3U7AMR1EGnVqt5gQnqinBWGLVgy4tQd/kPM+O06XzSrBIUZSz1gFikF9RhYWFRUVFFotFepHvdl79dktlZNpPS+KrHg60Nd7bfaG1bNn+Pe8n1UTFC1tcsOOUefJcr+FE50Qsinw3s97Sa1QajQYNX7XOwHquHY+USoRLOpGI09YBYvCKonp7e/fu3dvd3S2xSEef9Xhl25L4qq7e6w8Gmkturzp18pPYDauWJV1Z9sVmwWLcbgG7LtDWT6nFxjpITOs1Ko3e8Zq9/F407qVUQqODN7TvFLC7YF2D0HHB2tQaDXLVNsk7ORn+Eb4XCCCGVxRF07TFYtHpdO3t7VKKLImvOl/duiS+6ts9zZ2mhpzk36bGv/9FbNHfviuPW50iWAwVD2tdIFc7Tp8/t4eZrYtD1y5yw08wqiRUwlnNhSyyxNhd8C4Ws1hLQm2cZZHs7wj2p4KrEJZTuoi3FEXTtMlkSkpK6uvrE8//QeTpgaFR/U1TQe39nAvGeSuP37hxY0XEnpDosk9DY48U6QRLIgGAF5fjNevbmmc4YY9+dKG7WmfAqNP2hY2NMaeVoOsVHc0LGQHgW3C0Lqm2icb59gL4zpxfId8LBBDDW4qyWq1S+qiEA42tPYP9E4raXdmecabt+731V28/Wvx5wsG9mSJl2cMsDmjPYg8pkbCYGKghEmW95mYW6kdEK8FPULigKFbrkmqz5XKchLiiRCckQVdS8IqizGazxPuoDyJPj7940T80+uOtnsL6+1kXDBln2t7+7HB1/c3K84dEi3Kmtbmz5njXCuGQYCYTWNNz6GvWBJtg6DmphH2ieg1inIaxu2BfK6Z1wdpY5Q06tVqjYfkF8O8M9TrufOZEhRgvEEAMX8713bjT02kefDI8ZrQ+P3mjJ7+uK+vivYyz7f/cXf/pP3JFCnLuKfhdBnOE9/MTPlzRStnjJd5PTE7v0J1VgrvNF7G7wJbjG1zwatPzimINOxzF+Udw0xegJwn47PeopOyG3/xxw19Ct3wScWBl/JmYLVdit1756MucOUszpi/S/a+3kpO+aZD93ADA2/jsmYnf/HHDr6fGvPxq/JQZGz/6Mid265XYrVf+Y3ryy6+u+++/j/uX/xP/r7+J9dW5AYDbkPIUEgD4B6AoAJATUBQAyAkoCgDkBBQFAHICigIAOfGxogJy0S7gz/hSUS4v2gUA4vGZog62tjZ1dZluHKu6pGMv2t01iWfBW6AYIJC/Nl6eM/TBs4g+U9TWhoZx2vzs4Y1TFRFSF+06QB9z8+SBMzIVJdfVibcAivIKPnuuL7zkfPX9m613G45eSpS6aNcB+5PCO7JIwbeKEvr/luvqPME/njSX6ypcqMdnz57/s+x6WPWNSybzTzcaW5uKr13VX2ownq/rvNLYJKER3JoFdz46JShKJKMXAUW5WY/PfCaOXTg/92RjafdQ+D82LdOkLAlPXBIWv+TzxJAVG0K+0H76hS5kxQZ74pXGr1lAl3cgq1Dt7/LXJWBWvSPvs0cetnVJeo1KrdPbxmW2lX+strAnoNcw+5c6DiLNcUc3rl6dk0UYyCJexn8CdZvAfjL8c8Nul8qvU2AJJO9Txf1fCJ0h/6PjXKCzjWHxHh7SN4Z1HMG0wMOXPhPZJ0vLb1g/X5XWRtNMukXT12n6Gk3foOlbE8lFRbnk5WBXFNt0wZ6BvfDeEW2OJX/8rbexJ4AM3RyRJ7mPEr86TDV8Dwn2J8BWFO6T4WoYt2ySXycvrjHnJtYi7gyxHx26Js6gE9+8HP//jr0isSv1ZR/F/CHFZ6Kz817YV6ntNK1S/ReV6tfF59qGaXqIpodpWqV6SaV6qfhcm2RFcb/6ed/Q/OKITHhmmuw3UO1hLS0m/hZ0a0CV4IaixCvnfX2L93vcPoqfje05gP9wpMQZ36ZCQos0R1G8j45zShgrD+wnPPFS6Io8ulIbPvaZoGk67KtUA00P0/QvNK1SvUTR9LBNUf/G6OrjL7bzCvGuEI18F7wcRBTl8GVge3JJUBTmBDxTlJOrc5TC6Bdbp6eKEj9/0XPzrqIw7UpTFPZzc+NKfe0zQdN0WETKHZoeoWmV6lcq1UsvaHqcpimaVqn+ZYSmVaqXQlby59P5s2FoZKM3E8iIgjVKcDbqY/0nIj4NThWFPwEPFOX06jBWEHwPCTFF4T4Z0VEf1wXGXhgz6uOdm5QWnSnKpVEf/v8de0XSrlQU33vKLv8yuYWmh5mzUb3kODPVr5hea9mXqbxCyO2uivdpYu7TDTq8l4P4zATyBl5tAn9jTgAbFhMZcf2JK1eHs4JwZBOPV6FPhnNuIjMTaAF878wuJ9SiS4pCL9DZzATew0P6zISjNUwLPHzve748IuU2TatU/6ZS/TeV6r/uPnRGpfoVbbuzekmlemnZl8ImmFJx4TuGj9hQS/F49MmQ0iJJ/0O+f/Y8bFVqi2iGzyL4fZSrePC/OPkhN6koVFEGxG+NP7HpS3yvqBVfbwpblfZZRMqyL1OWrkxeqkkOXZkcujI59MuU0JXJn0Wkhn8t5bkkcdz8X0Snx/0UhSqKNfolR040CYoCAH8CFAUAcgKKAgA5AUUBgJyAogBATnymqOvN1TvLtn5TWrqzbOv1ZlgMD/gJvlHU9ebqb0pLDY25lKn+m9JSdfnPICrAP/CNoooq2ujBjtabu2ruppXfygnZVfy36CL7u/tT1vnkrADAc3yjqG9KS4/eacm/uP+Q/v0D+99ZFX8w5OuiNYveiQieGRE8M+KdmcwfCaELxGqR/9kT0QfqAEACPlPU3EudIQXl8SuD13797Udfn/hn3Na1C2YbqzMNl3ZEBM80Xs40XtoRETxTrBbvKIr1cItfPy4BeAMvKqqqqkqrxT9AdL25etmBK8EZt8L/eXRxeP7i8OTrzdVRC2e3X9C1nd8WETzzzoWMO5UZvlWUj00oAGXiLUVVVlZOmzZtypQpQhmuN1dvjT+84u8561brmGkJ25CPnTJWRwi2wV0hjj6Cz1pa4HiBWwqBgCqKszjBZXcH/Eae3KV+yBp7vDuFlEYBgvCKohg5LVmyRERRfL7/6M/Gy5mGi9uZUZ/BhVGfQafhLcnDLBfDZWOB3kcJrRGdqA3zwKeAS4GwojhSZPe4EhsFyEJ+RdnlFBISIqKontsXnhnO9TXljliNowMtd8+t1acF12bNr82aX546p2bP/Jo988tS5lz9YXljXji+Cvaoj/flPfE2fyWb4Hc8a5kbvuNxqM2puwNOBkLL0fkjWImNAoQhs6JQOYkranTQ3FkUOtRR1FWyfPR5v6lpO2U6RZlOU6ZSqqeM6imjesqpx/q+trzKTXOwNXC+7vnrl5ko5ayYFV3mzF0KLmC0wC0i4O4w0bLbipLSKEAYMitKq9VOQUhLSxPKaa7PNpatjlv6h3unIvtvnRy11lGd+VTnIaqrgOoqoLoKqQeHrTd3nds8z9JxDVcBcp/DXZCOhC9qESGUjV0na5U2cocj0d0Bs3weqUjQVgHjDCGxUYAsfDN7PjbU135gQWdt0sKpqmct6Ya8T8aHTJRhF2XcRRl3U8Y91N0sS6NWnzrXfA9jMWsbEOGGcmqNhiMKCdloNAPHOod11yM0C8G2WeEftZdG2uVJgusMIb1RgCB8o6hHl3UPSsOGWhJOpL9Hta3vOBpquV5CtaRRLRupFi3Vuqm3Jq40eW7vXSmOzQBAEL5RVGvu4qeN0c9bUjK/nj5m1D5piGov/Px4TNDxmKBjMW+UJs+ry48e6jf55NwAwBN8o6hr298eqI960ZHRXRv3oiOj90Jkyw8hPjkTAJAX3yjKfKv8yubpdWmvMKlRN6evvconZwIA8gIrDgFATkBRACAnoCgAkBPvK0qlggTJK4lIQFGQFJuIZLIUBQAyQnBQ+ZWiyDWoENgJRobMgQkoSt4qn1sfXDsQeTV7xdXsFTcOrXHZoMI9PHk2VaJImCZAUU4BRclb5aX0BU+6mgZ7WgZ7Wsy3K1w2qHALZDMwbzEJTfgJoCiXSogYVNA0/dzSUZ0681FtXP/NtGc3UwYaE102qHCHSdj0i6R9xQgHFCU9u1ODitqt7/Y07x24W/y04+jTjqOxf5vnkkEFb4WEFL8Hzlatap3eVotG78juyMxfhcHZA1PHK0Jz1lMJLehwzz/D7wBFScwrxaCiIvE16rEeTS4YVGDuhZz6PdiOomt7kT2s+QsIcW4W7OX2SBGWZnnyk8s/w+8ARUnJOCkGFXyfBmer07lZJOxsje9anO7TjPNOksc/w+8ARTnNNZkGFWyfBueKEs6B+xvrZuFMUbzl+PZSsvhn+B2gKKe5JsmgAuPT4NTvgZ9BVFFYNwsniuJ3N5wBnof+GX4HKEquyjw0qKAxPg3O/B64U9pOR304NwtxRXGa4Hr6cQwqaJ5wnPpn+B2gKLkqm3yDCh/MmgfIyM0TQFFyVTbpBhU+EhT8LiUOKEquyvzcoIJnmwbgAUXJVRkYVAA0DYoi9eIBpUJwUIGiAAVCcFCBogAFQnBQgaIABUJwUBGpKJ8bGECSJXkPb9fvAaAoSF5L3sPb9XsAwYqaFFK//M/JaWiCwNguGxTlzRbIUlT15vDLm8IvM/9uCl8V/Br6sm77V15qdwJQlBLq94CAU1RlaviN4wmt+tSfTyTW5XylXRp843h8mz715xOJNVlfXUgN81K7E4CilFC/B/iVosQNKhh+XL+8syHH3Fb4oHHf9ZLY/NWfdl7JNrcVPmja11j4fUXSZ2606wqgKCXU7wH+oyinBhUM5euWtVfpuq7uNV7a0XBobebfP7C9vJxZn7v6TPxS4aIc/wlhxwhefiQHqihsBr8AFOXNFiZDUVIMKhhOfR9Snx/dWJxQfyimcvsXGz6dU5cf3ViccKUg5vy2FWUxSwTK8f0nBB0j7O/izCvsihLK4BeAorzZgtcVJdGggqZpu0HFz5UnM5b/JXHRW7EL5iQuemv9R7Mzwt478I+PIua8ip/9w6zqEHCMwOZnWSlx1+cK1K9kQFHebMG7ipJuUDH+vN9uUDFGPbt+etP5zFUJi2ZfPbbhhj69+VTahcyvDq780Pq4B1MYFOUSoChvtuBdRbltUNF3v7rxcHTiotn2mYm6g98VrPqrQGm+/4TA+nbEeYxluic26kMz+AWgKG+2QMTsOd+ggnryqC73u4yw9+wzE5dzvsnTfCBYBcd/womi2BMZOl4fJZjBLwBFebMFIhSFNaio2Lri4Ncf1+dHN5UkXimIPbsx7MCK9+Rt14bTQR2M+oiq3wMCRVFYg4o9y+ZtWPzOnmXz7Gn/5+/K264NUJSy6vcAghUFSenJe3i7fg8ARUHyWvIe3q7fA4hUFACIQ3BQgaIABUJwUIGiAAVCcFCBogAFQnBQgaIABUJwUIGipHJ68x/56Wzm7Kdm//kZSTEQHFSgKKmc2PTqyOg4JzUWh5Vum2V5cN0rTfp4TwHbY1caneTTmLQTJjioQFFSKdn4p+GRcU4yViVcPRJ2Yusss5ioeHtWScSjAEWWM7q1aJi9ixUoSioBraiamprBwUGJmQ+nvjY4PG5P8+MPh20+ce8nreFCQsORsOJNaoFynGfMJ2VJPLIYknnpRpgT/VwUwUEV0IoqLCwsKiqyWCxSMucnv/70+Zg9zYjMmRGZY3+Zn/w6vhhv5ZT3kWe/eFCUewS6onp7e/fu3dvd3e0088Gk6QODY/bEKMr+8mDSdIFy2PhmhlT80SBynNm8Gl05gvG0sNeArAcRkwLqbIEuyedWzhoysvZcxLXIuSzH35zdV1mrX3h7rLryLUBwUAW6omiatlgsOp2uvb1dPPO+xBnWZ6P2xCjK/nJf4gzBkph91pg4QhdKoRvvsvVlr4J7VyOwZlFQUWwzC0dpvGGGoxr2aYitkkTvvTTIBsXcZcvItuL8bFIgOKhAUTRN0yaTKSkpqa+vTyRzVsJM85NRJnU8HpwRmTN3Ta79SFbCTPG2JibOsNtpC2xcL74fttC6eiFFCW73i1/ej4l/pyv5+aePXaPpJJsECA4qUBRttVql9FE71wU9HhhlUkN774zInAWJh+1Hdq4LktCg/XvYm4oSkhRGUXwJyqQotANDrokp4WhDIJtzCA6qQFeU2WyWeB+li33D1Ddy9ur9LSX178cemhGZk3a4xtQ3wiRd7Bv4YqzpPXsMGnRqzvjJMeqSqijhMRh3QGab6+ON+jAKFFWUUIv2sSJOe9xLVWs09rkaoWxOITioAl1R0uf6tkSru60jFde6ZkTmvBudH3vwotE02G0dYdKWaKHZc3RUw75D0vB/pnJJUWjVvHkC7ByEyMyEJEUJtMhXFJpPo1GzLxA74mNncwbBQRXQinLp9yht1KwuMyWUtFGzXGnZpSGONCZ/ttvZfZQXITioAlpRLpGy5s37vZRQSlnzpiuVyRJ66IByckxpnbQ4eU9NERxUoCiprF/9lnhypTKZvsyRAeUk9U9CLWJ+IfAmBAcVKApQIAQHFSgKUCAEBxUoClAgBAcVKApQIAQHFSgKUCAEBxUoClAgBAcVKEoq4DNBEAQHFShKKj7wmcDiY/MJMiA4qEBRUnHPZ4K9ebUcv4KComiigwoUJRV3fSYY0C3ipTNpz8kpDYKDChRF0zRdVVWl1WrF87jpM2EDFCUrBAcVKMq2N7b4JvO0+z4TDHxFoXuGIu4LjqEhMmBER3mT5uVAMgQHVaAryr7VvFNFue8zQdM8RXGWJKk0emyHhOujJs3LgWQIDqqAVpRdTiEhIeKKemY419eUO2I1DlHjbvlMsBXFm6+wr7EV7o/wx7zo5UAyBAdV4CoKlZO4osaf93cWhQ51FHWVLB8fc89ngqcowek6JvgdwzVBRXnby4FkSA0qOpAVpdVqpyCkpaUJ5TTXZxvLVsct/cO9U5H9t06ea7zngs+EDf6oD12VblOIjusqhihg8r0cSIbUoKIDWVESGRvqaz+woLM2aeFU1bOWdEPeJ8auHpd8JmiaxsxM4MZheEdMld0Nc3K9HEiG4KACRTnh0WXdg9KwoZaEE+nvUW3rO46GWq6XeOwz4QF+M3LzBIKDChTlhNbcxU8bo5+3pGR+PX3MqH3SENVe+LnHPhPuA49M0DTRQQWKcsK17W8P1Ee96Mjoro170ZHReyHyUvosj30m3GKSvRxIhuCgAkU5wXyr/Mrm6XVprzCpUTenr73K1ycV8BAcVKAoQIEQHFSgKECBEBxUoChAgRAcVKAoQIEQHFSgqMmg/fH9+NM7Ptyp+d2Gv87ULo45kXHP/MDXJ6VkCA4qUJR3GXsxnllV8L/j3w058GlcWdiGMysii0MXZX/879F/zqjM8/XZKRaCgwoU5V2+Ld4YtGl+8o9/z7z8VWFTyqmfdx6+tnH7pS/jyz9/JfmDwoZyX5+gMiE4qEBRXuQn47X/GRucWB6eXRP3+GmX/fiDfsPm8yujTv7nf8T/5eFAL7as/AYV/gTBQQWKcgeJG08t2bd6YdaiuNPhjwY6aZq+a24t/bmgu7+DpunzbSdiToX9ZcfCFH22aB2wnB4HwUEFinIHiZsj/nv03GUHPt1yLpGm6dHx0dUlK1YdDv22OCzh9Ldxp/6x6nBoyL5PFmVFitYBisJBcFCBotyhsLCwt7fX6Qa+//rdm8v2L86+vIum6Ts9rcv2L+akj/d8/H/XfyjalHwGFf4EwUEFinIHZpN5i8Uivsn875IWfLh94Zri72mafvL8ycKdn/x1x6Il2csyKnZsPrPlrzsWzd784SvJH4k2JZ9BhT9BcFCBotyBURRN0yaTKSkpqa+vD5utoeOm3aCCpunmrp+1el1z1880TV+6UzM3ff7v1r8bUbhBtCn5DCr8CYKDChTlDoyirFareB81OtSHGFSMoG/1Dz1t6ry5+cf9raZ7ok3JZ1DhTxAcVKAodygsLDSbzU7vozgGFaU3z+y8mBNfmvLLL78EpS1/a3N4RsUh87N+0aY8NqjwSwgOKlCUO0iZ6+MbVNx7bPhg90fv71pE0/TUuE+z69O+OLR6evJnq49sbX3UIVCNxwYVHl4qmRAcVKAod5DyexTWoOJ/xARPSfiApumXoxau/jFq9Y9R3+jXzNi49OWohZNy4v4CwUEFivIWWIMK6+AA8+6vv/1/HxaGq3WhU6I/XrwnpvpOs2/PVmEQHFSgKG/BN6ho+SHE/u5Lq95/ec2C2KO7uyw9PjxJpUJwUIGivIW4QcXjJ1ZqdES4NCAKwUEFigIUCMFBBYoCFAjBQQWKAhQIwUEFigIUCMFBBYoCFAjBQQWKksrpzX/kp7OZs5+a/fOxBKIhOKhAUVI5senVkdFxTmosDivdNsvy4LoPTiiQ9xQgOKhAUVIp2fin4ZFxTjJWJVw9EnZi6yyzoKh4j4s7th/0DFAUkQS0oiTaRTAcTn1tcHjcnubHHw7bfOLeT1rDhYSGI2HFm4R2ZPOaogIZgoMqoBUl0S6CIT/59afPx+yJ2Sve/jI/+XWBcqAoL0BwUAW6oqTYRTAcTJo+MDhmT4yi7C8PJk0XKCemKPGVGWgujV6vEVmny62INSJ0vPCbLeMJDqpAVxQtwS6CYV/iDOuzUXtiFGV/uS9xhkA5YUVhlgXibCRsOuBJAN2QVzNRyL4i0VETUg8/m0IhOKhAUTTtzC6CISthpvnJKJM6Hg/OiMyZuybXfiQrYaZAOZE+iucPgbeREFiQyz7M634m2nWSTZkQHFSgKOd2EQw71wU9HhhlUkN774zInAWJh+1Hdq4LEijH0wNXYog/BN5GwpmiDDq1itchTVTm0K9ANkVCcFAFuqKk2EUw6GLfMPWNnL16f0tJ/fuxh2ZE5qQdrjH1jTBJF/uGUEGDTs25TbKHNc8fAmcjgell2J0PokNWWwadWq3R2G/ahLIpEYKDKtAVJX2ub0u0uts6UnGta0ZkzrvR+bEHLxpNg93WESZtiRaaPadp9mgO7YT4/hC4YZkzRSFl1BqNmlMXbsTHzqZACA6qgFaUS79HaaNmdZkpoaSNmuXVU8Wg9JGbJxAcVAGtKJdIWfPm/V5KKKWseXOSzyeQH5kgOahAUVJZv/ot8TR5p2IbLAZqB0UTHVSgKECBEBxUoChAgRAcVKAoQIEQHFSgKECBEBxUoChAgRAcVKAoQIEQHFSgKKmAzwRBEBxUoCipEOczIRdK/KmY4KACRUmFGJ8J5Mk/WX7nBUXJSkArSpk+E+zn+fSaQHx6guCgCmhFKdNngveEbAA+MktwUAW6ohToM8EXEHIEv0YXXU0isrpeOX4VBAdVoCuKVp7PhIiisE4SyBpHGucwoUS/CoKDChRF0xJ8Jp4ZzvU15Y5YjUPUuK99JrCKclTC7T9wi/BFBo3K8KsgOKhAUc59Jsaf93cWhQ51FC4VXwMAAA0fSURBVHWVLB8f87nPhHCFWCcJTHM8hSvOr4LgoAp0RUnxmTDXZxvLVsct/cO9U5H9t06ea7znS58JzFyfuJMEb9TnkJ9i/SoIDqpAV5TTub6xob72Aws6a5MWTlU9a0k35H1i7Orxpc8E5/coTHfHd5LAzUwo2q+C4KAKaEVJ+T3q0WXdg9KwoZaEE+nvUW3rO46GWq6XEOEzIRdKnHwnOKgCWlFSaM1d/LQx+nlLSubX08eM2icNUe2Fn5PgMyEXSnxkguSgAkU54dr2twfqo150ZHTXxr3oyOi9EHkpfZaPfSbkQrl+FQQHFSjKCeZb5Vc2T69Le4VJjbo5fe1Vvj6pgIfgoAJFAQqE4KACRQEKhOCgAkUBCoTgoAJFAQqE4KACRQEKhOCgAkVJBXwmCILgoAJFScUPfSbc/nHX578KExxUoCipEOMzQWOfB3QHUJQXCGhFKdNnAn0+3aBTK/CJB88hOKgCWlGK9JmQoYtTPgQHVaArSoE+E0Ir0cULajR8xwjWU+f84vwjyCX41pqC4KAKdEXRyvOZwD7hKqEg3zHCcQLsVYmCFSKX4FtrCoKDChRF0xJ8JmiazkqYaXeV8KnPhKMah6wkFeQ5RgiunBeqEG3bp9YUBAcVKMq5zwTDznVBdlcJn/pMoEx84UsriHOMEFaUyN2az60pCA6qQFeUFJ8JBl3sG6a+kbNX728pqfelzwRres8e+FIMKniOEexRn310qLOJm1chOdYUBAdVoCtK+lzflmh1t3Wk4lrXjMgcn/pMsIwmRAdVeGc/vPOfo7jQlANJ1hQEB1VAK8ql36O0UbP49hL+4DPhBj63piA4qAJaUS6RsuZNvr2EH/hMuIHPH5kgOahAUVLBekso22fCDQixpiA4qEBRgAIhOKhAUYACITioQFGAAiE4qEBRgAIhOKhAUYACITioQFGAAiE4qEBRgAIhOKgmS1GQIMmeiAQUBUmxiUgm67Rk/QgupS940tU02NMy2NNivl2xdsFsY3Wm4dKOiOCZxsuZxks7IoKFViu5zySsRocF71IBRbn0EVRVVWm1WqF3n1s6qlNnPqqN67+Z9uxmykBjYtTC2e0XdG3nt0UEz7xzIeNOZYYXFCW+YEgpTfgLoCjpH0FlZeW0adOmTJkilKF267s9zXsH7hY/7Tj6tONo7N/mRQTP5KeM1RHY4rw1ChwXBxrvr+CIdr1GpdbpbbXYVvtxMuPXQSDrW3W8IqwmJJ2SuEcFfkkHexWGsyYkNuoLQFESPwJGTkuWLBFRVEXia9RjPZq+/+jPxsuZhovbmVGfQWTUh1mGwHFx4Dsu2I4idg0qZJkfW5jMX3xPBfbaPqQIS7PslUnoKfEsH/AeFezquE3z1zWJXLXERn0EKErKR2CXU0hIiIiizsS9Sj0sYdLQ/YK759bq04Jrs+bXZs0vT51Ts2d+zZ75ZSlzrv6wvDEvnFeaZ+3A33qdryeuZ5AaUQz2b6xBENuDwZaLv5wWd0psJhbQq7geFVgvCLE+SviqJTbqK0BRTj8CVE7iijr9/SvU/Vzqfm7fjYzaPR+aGrdRplOU6TRlKqV6yqieMqqnnHqs72vLq9w0R6AOxNpBgqKEc+D+xnoqOFMU3+PEicj5F4JRFM8+xSVFSWnUV4CinH4EWq12CkJaWppQzuPf/Z4y7rI2plZtnWttzqA686jOfKrzENVVQHUVUF2F1IPD1pu7zm2eZ+m4xi2MsXbgGwZxHBcEHIWE/sZ6KjhRFKcJkVNyWD5gPSowN37I2BJZqu70qiU26iNAUTJ+BEe+/Z2lbl2F9m1LwwbKkEkZdlKGXZRxF2XcTRn3UHezLI1afepc870mbHGetQPWjI49YBOYQBD4G+epIK4obhMip4SbhcAPEDEmD4jHg7OrdqFRXwCKkvEjKIj8bXniTHPNWup2CnU7lbqdSrWkUS0bqRYt1bqptyauNHlu7128nNwAZs1JBBQl40fQdHxTfuS04jWvlkS9fjR6xrGYoOMxQcdjgo7FvFGaPK8uP3qo3yRLQzRNg6AIBRRF8kcAKA+CwwkUBSgQgsMJFAUoEILDCRQFKBCCw8n/FXUPcBef/H9JAhTlW0UNA64DinIPUBSABxTlHgGnqCq9lp9+qthmNT/wVeySCSjKPQJOUefLNo+MjnNS89n4qjPbHpvuSg23kytUQem3hoeHh2+lB6lWnJQ7nGXnVnrQxBlLBBTlHgGnqDOntw6PjHOSsSrh+pmEinJdj0naEBEU5VtAUeQoqvSEbnB4fHtBXWpOVfQ2/aoNxwaHx+/9pDVcSGjSx+tP7ZAUbspQlEfnBopyj4BT1ImjmU+fjwmlE0czJYUbKMq3gKLIUVRx8e6BwbHtBXXpudWp2RcSMs99v7X8nxtPfZV0dGBwrLh4t3CMnVyBLmplKcrxFi+ChTIgx21VofXbqxGp33FwYjyH1hkUhJ4qS1z8gsO30oM4LYCi3CPgFFV4ONv6bFQoFR7OFpETKyQRRTneYeVCY5WfgX0crVIkm+O4o5dE+iJOnYiMHH/iCuI6M1CUewScovIK9pmfjGL7KPOT0byCfYKCQm/sBUd9/NgUysA+zqlfKJv9Jbu/nOhthE/G/ie+IHOUdQagKPcIOEXtzzv4eGBUKO3PO0iMopjXworCTN1JU5TgnB/TxdneBkW5R8ApKvtgnqlvBNtHmfpGsg/m4YONNZ67lR7EHvWx3rDrxSEJTAZu9PNGfeL1c0eh2DqFRn28grfS009yi4Ci3CPgFLVrf0G3dUQo7dpfIKAo9v18OruPWoGdd0A6GX4GTG8mPDOBKY6bTODVacvCmZnAFBzmT32Aotwj4BSlyynqMlPbC+o27b+UuKsiakv5P5KPd5kpJulyigQV5SYeTq/7bHYeFOUeAaeoLVnF93spobQlq1juyARFeQFQFDmK2rjrmHiSOzJBUV4AFEWOogCJgKLcAxQF4AFFucfkKgoSJBkTkYCiICk2EQmhpwUACgUUBQByAooCADnxK0XtT1nn61NwEfbGoYAfoEhFPbc+uHYg8mr2iqvZK24cWrNm0Tu2Da3fsW1rnRC6QP5W5d2FjKkNFOV3KFJRl9IXPOlqGuxpGexpMd+uWLtgtrHatqG18XKmUWRnaw/A7cIpvShmP21Qkl+iPEU9t3RUp858VBvXfzPt2c2UgcbEqIWz2y/o2s5viwieeedCxp3KDC8oirWFoceKgj2j/BblKap267s9zXsH7hY/7Tj6tONo7N/m2YZ87JSxOgJbnLcXJhPueo3KvoutY2tM3ra2yLacwpnZTfCLCMgTt788q07upqQ+3rkTwKI8RVUkvkY91qPp+4/+bLycabi4nRn1GURGffjxl4qz0yy/+9BrMPut8zbVVWn0gk2ghxy1oZu3axC92feq5m86z88GkITyFHUm7lXqYQmThu4X3D23Vp8WXJs1vzZrfnnqnJo982v2zC9LmXP1h+WNeeG80kyPgUqGHe7Y4RgrC/IC3Uja0Qk5a4LbL2G2oJ6QysTZOMkGEITyFHX6+1eo+7nU/dy+Gxm1ez40NW6jTKco02nKVEr1lFE9ZVRPOfVY39eWV7lpjkAdTEzi7otwihIUhNjdkGAT+BcGnVrF65AmWnBMYwhkA8hBeYo6/t3vKeMua2Nq1da51uYMqjOP6synOg9RXQVUVwHVVUg9OGy9uevc5nmWjmvcwgadjts7cAITHUvpdZjJPc6oDx0v2uoTbUJAnog4DTq1Cs2u1mjs84JC2QBiUJ6ijnz7O0vdugrt25aGDZQhkzLspAy7KOMuyribMu6h7mZZGrX61Lnme03Y4o6RGu9WxoZjUDUhB3ZHZHtfeJ6A1wRShFMbeh81UZFao+H0YtgRHzsbQArKU1RB5G/LE2eaa9ZSt1Oo26nU7VSqJY1q2Ui1aKnWTb01caXJc3vv4uXkBvLOc3Nrg5Gb36E8RTUd35QfOa14zaslUa8fjZ5xLCboeEzQ8ZigYzFvlCbPq8uPHuo3ydea9wUFv0v5F8pTlJ9gGxpCB+VvgKIAQE5AUQAgJ6AoAJATUBQAyAkoCgDkBBQFAHICigIAOfErRSnPZwLwOxSpKP/xmZCrNoAYCFJUTU3N4OCglJzgMwEQC0GKKiwsLCoqslgs4tnAZwIgGbIU1dvbu3fv3u7ubpFsfuUzIa118SUjKuzaK/Y6EWdNSGwUcA5ZiqJp2mKx6HS69vZ2oWx+5TOBaV1KheyTtK97FFaU6AVKbBSQBHGKomnaZDIlJSX19fVhs/mVzwS/dSkVCq2yEuujhC9Q6lUAkiBOUVarVbyP8iufCSl65leIURRv0sQlRUm6CkASZCnKbDY7vY/yK58JsdZFKuSN+hzKRS1ecIrCXKDERgFJkKUoKXN9fuUzIda6WIX4mQmkNOJC4ewCXWgUcA5BipL4e5Rf+UwAfgdBipKIP/lMAP6H8hQFACQDigIAOQFFAYCc/H+fmyR+EBjB5wAAAABJRU5ErkJggg==" alt="" />
db.properties
;;;;;;;;;;;;;;;;;;;;
;DataBaseConnection;
;;;;;;;;;;;;;;;;;;;;
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/maven
jdbc.username=sa
jdbc.password=123456
1. 导入依赖:
<!-- 连接池 -->
<dependency>
<groupId>com.jolbox</groupId>
<artifactId>bonecp-spring</artifactId>
<version>0.8.0.RELEASE</version>
</dependency>
之前的Spring xml配置连接池:
<!-- 定义数据源 -->
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close">
<!-- 数据库驱动 -->
<property name="driverClass" value="${jdbc.driverClassName}" />
<!-- 相应驱动的jdbcUrl -->
<property name="jdbcUrl" value="${jdbc.url}" />
<!-- 数据库的用户名 -->
<property name="username" value="${jdbc.username}" />
<!-- 数据库的密码 -->
<property name="password" value="${jdbc.password}" />
<!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
<property name="idleConnectionTestPeriod" value="60" />
<!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
<property name="idleMaxAge" value="30" />
<!-- 每个分区最大的连接数 -->
<!--
判断依据:请求并发数
-->
<property name="maxConnectionsPerPartition" value="100" />
<!-- 每个分区最小的连接数 -->
<property name="minConnectionsPerPartition" value="5" />
</bean>
2. 参考xml配置改造成java配置方式:
SpringConfig .java
package cn.qlq; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource; import com.jolbox.bonecp.BoneCPDataSource; @Configuration // 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "cn.qlq") // 配置扫描包
@PropertySource(value = { "classpath:db.properties", "xxxxx", "yyyyy" }, ignoreResourceNotFound = true)
public class SpringConfig { @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
public UserDao getUserDAO() {
return new UserDao(); // 直接new对象做演示
}
@Value("${jdbc.url}")
private String jdbcUrl; @Value("${jdbc.driverClassName}")
private String jdbcDriverClassName; @Value("${jdbc.username}")
private String jdbcUsername; @Value("${jdbc.password}")
private String jdbcPassword; @Bean(destroyMethod = "close")
public DataSource dataSource() {
BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
// 数据库驱动
boneCPDataSource.setDriverClass(jdbcDriverClassName);
// 相应驱动的jdbcUrl
boneCPDataSource.setJdbcUrl(jdbcUrl);
// 数据库的用户名
boneCPDataSource.setUsername(jdbcUsername);
// 数据库的密码
boneCPDataSource.setPassword(jdbcPassword);
// 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
// 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
boneCPDataSource.setIdleMaxAgeInMinutes(30);
// 每个分区最大的连接数
boneCPDataSource.setMaxConnectionsPerPartition(100);
// 每个分区最小的连接数
boneCPDataSource.setMinConnectionsPerPartition(5);
return boneCPDataSource;
} }
注意:方法名字为Bean放入spring的Id,因此一般不加get
解释:
@Bean(destroyMethod = "close")是定义一个Bean,同时其销毁方法为close(),类似于xml配置中的destroyMethod,打开Bean注解可以看到:
aaarticlea/png;base64,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" alt="" />
思考: 如何使用该DataSource对象?
放入spring中,使用方法类似于平时的使用方法。
3.测试:
package cn.qlq; import javax.sql.DataSource; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /**
* 测试类
*
* @author liqiang
*
*/
public class Test { public static void main(String[] args) {
// 通过Java配置来实例化Spring容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); DataSource dataSource = context.getBean(DataSource.class);
System.out.println(dataSource);
// 销毁该容器
context.destroy();
} }
结果:
JDBC URL = jdbc:mysql://localhost:3306/maven, Username = sa, partitions = 1, max (per partition) = 100, min (per partition) = 5, idle max age = 30 min, idle test period = 60 min, strategy = DEFAULT
注意:实例化容器是 AnnotationConfigApplicationContext
以前是:
BeanFactory
ApplicationContext
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
XmlWebApplicationContext
Java配置方式读取外部的资源配置文件的更多相关文章
- SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池
三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...
- Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置
通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值: @PropertySource注解主要是让Spring的Environment接口读取属性配置文件用的,标识在@ ...
- SpringBoot学习(二)——Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...
- SpringBoot学习(二)-->Spring的Java配置方式
二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...
- Spring 的java 配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.1@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @ ...
- Spring的Java配置方式—@Configuration和@Bean实现Java配置
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @BeanSpring的Java配置方式是通过 @Configuration 和 @Be ...
- Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1 @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration ...
- jar读取外部和内部配置文件的问题
最近修改XX应用的时候,涉及到需要在jar包中读取工程配置文件的问题.在jar包中,读取配置文件,需要单独处理. 项目中的一些配置文件,如dbconfig.properties log4j.xml 不 ...
- 1.0-springboot的java配置方式
1.创建User实体类. @Data public class User { private String username; private String password; private Int ...
随机推荐
- 20道spring boot面试题
面试了少量人,简历上都说自己熟习 Spring Boot, 或者者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总 ...
- Kafka详解与总结(六)
索引 稀疏存储,每隔一定字节的数据建立一条索引(这样的目的是为了减少索引文件的大小). 下图为一个partition的索引示意图: 注: 现在对6.和8建立了索引,如果要查找7,则会先查找到8然后,再 ...
- P2973 [USACO10HOL]赶小猪
跟那个某省省选题(具体忘了)游走差不多... 把边搞到点上然后按套路Gauss即可 貌似有人说卡精度,$eps≤1e-13$,然而我$1e-12$也可以过... 代码: #include<cst ...
- 题解报告:hdu 1015 Safecracker
Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kl ...
- 由一维数组表示的N维数组实现(C++)
工作中,经常需要表示多维数组(如二维矩阵),常见的做法是使用T **pArr: T **pArr = new T*[M];//创建二维数组[M][N] ;i<M;i++) { pArr[i] = ...
- python--12、索引知识
MySQL索引及优化 影响性能的因素 需求:一个论坛帖子总量的统计,附加要求:实时更新.从功能上来看非常容易实现,执行一条 SELECT COUNT(*) from 表名 的 Query 就可以得到结 ...
- LR接口测试---Java Vuser之增删改查
import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- solr深分页,游标操作分页,解决性能问题
solr深分页,游标操作分页,解决性能问题 @Test public void pageByCursor() { try { solrServer.connect(); String query = ...
- glassfish中新建数据源(创建数据库连接池)
1.浏览器输入:http://localhost:4848 登录glassfish域管理控制台,默认的用户名和密码是amin和adminadmin.(也可以通过NetBeans的服务选项卡--服务器- ...
- Win7 下 PB (PowerBuilder) Insert Control 崩溃的解决办法
环境: WIN7 x86 PB8.0, x64系统目录不同,不过也可以试试 Insert -> OLE... -> Insert Control - 崩溃 如果网上提供的办法解决不了你 ...